我想使用android studio与ndkbuild集成。
我的“原生”部分项目仅针对armeabi-v7a-hard和x86构建,
如果我只是在jni目录中运行ndk-build
,一切正常。
我在Application.mk
中有适当的行:
APP_ABI := armeabi-v7a-hard x86
为了将项目集成到android studio中,我将这些行添加到build.gradle
:
externalNativeBuild {
ndkBuild {
path 'src/lib/jni/Android.mk'
}
}
但出于某种原因,gradle build
尝试使用APP_ABI=armeabi
构建本机代码并失败,因为我的代码只能使用armeabi-v7a-hard
构建。
那么我如何告诉gradle仅为armeabi-v7a-hard
和x86
构建我的代码,
或者不要忽略APP_ABI
中的Application.mk
行?
我尝试这样的变种:
defaultConfig {
ndk {
abiFilters 'x86', 'armeabi-v7a-hard'
}
}
但gradle
因此消息失败:
ABIs [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
正确值。
答案 0 :(得分:1)
@Titan提供的链接是设置ABI所需的全部。
之所以可能无法正常工作,是因为armeabi-v7a-hard
在2015年已弃用,因此针对此目标会导致此问题。您应该按照此this post
armeabi-v7a