gradle + ndkbuild + android studio 2.2如何设置支持的ABI?

fgh*_*ghj 10 android arm abi android-ndk

我想使用android studio与ndkbuild集成.

我的"本机"部分只为armeabi-v7a-hard和x86构建,如果我只是ndk-build在jni目录中运行,那么一切正常.我有适当的路线Application.mk:

APP_ABI := armeabi-v7a-hard x86
Run Code Online (Sandbox Code Playgroud)

为了将项目集成到android studio中,我将这些行添加到build.gradle:

externalNativeBuild {
    ndkBuild {
        path 'src/lib/jni/Android.mk'
    }
}
Run Code Online (Sandbox Code Playgroud)

但由于某些原因gradle build尝试使用APP_ABI=armeabi和构建本机代码,因为我的代码只能构建armeabi-v7a-hard.

所以,我怎么能告诉gradle这个建立我的代码只为armeabi-v7a-hard和x86,或者只是不能忽视APP_ABI来自行Application.mk?

我尝试这样的变种:

defaultConfig {
    ndk {
      abiFilters 'x86', 'armeabi-v7a-hard'
    }
}
Run Code Online (Sandbox Code Playgroud)

但是gradle失败了这样的消息:

ABI [armeabi-v7a-hard]不适用于平台,不包括在建筑和包装中.可用的ABI是[armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,mips,mips64].

请注意,我用NDK 10,没有持续一(NDK 13),那里有armeabi-v7a-hard,并且ndk.dir在local.properties以正确的价值.

Dar*_*pan 1

@Titan 提供的链接是设置 ABI 所需的全部内容。

它可能不起作用的原因是它armeabi-v7a-hard已于 2015 年被弃用,因此针对它会导致此问题。你应该armeabi-v7a按照这篇文章来定位