【发布时间】:2017-04-20 23:58:36
【问题描述】:
我想使用 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 构建我的代码,
或者只是不忽略来自Application.mk 的APP_ABI 行?
我尝试了这样的变体:
defaultConfig {
ndk {
abiFilters 'x86', 'armeabi-v7a-hard'
}
}
但是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 中的正确值。
【问题讨论】:
标签: android android-ndk arm abi