【发布时间】:2018-06-05 15:51:31
【问题描述】:
我正在尝试构建一个涉及 NDK 的 Android 项目:CoolMicApp-Android(已经安装了最新的 Android Studio 和 NDK)
我正确地遵循了BUILDING 注释。在Android Studio中加载项目时,出现一些错误:
构建命令失败。
执行时出错 'C:\Users\Cipta-NB\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd' 带参数 {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Cipta-NB\StudioProjects\CoolMicApp-Android\app\src\main\jni\Android.mk NDK_APPLICATION_MK=C:\Users\Cipta-NB\StudioProjects\CoolMicApp-Android\app\src\main\jni\Application.mk APP_ABI=armeabi NDK_ALL_ABIS=armeabi NDK_DEBUG=0 APP_PLATFORM=android-16 NDK_OUT=C:/Users/Cipta-NB/StudioProjects/CoolMicApp-Android/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT=C:\Users\Cipta-NB\StudioProjects\CoolMicApp-Android\app\build\intermediates\ndkBuild\release\lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}
Android NDK:内部错误:armeabi ABI 应该只有一个 架构定义。找到:''
process_begin: CreateProcess(NULL, "", ...) 失败。
*** Android NDK:正在中止......停止。打开文件
可以通过运行以下命令成功构建 C 库:
ndk 构建 NDK_APPLICATION_MK=C:\Users\Cipta-NB\StudioProjects\CoolMicApp-Android\app\src\main\jni\Application.mk NDK_PROJECT_PATH=C:\Users\Cipta-NB\StudioProjects\CoolMicApp-Android\app\src\main
在我的笔记本电脑中,ndk-build 位于 C:\Users\Cipta-NB\AppData\Local\Android\Sdk\ndk-bundle。创建一个名为 NDK_PROJECT_PATH 的环境变量并重新启动 Android Studio 并不能解决问题。
这是项目目录下local.propertes文件的内容:
ndk.dir=C:\Users\Cipta-NB\AppData\Local\Android\Sdk\ndk-bundle
sdk.dir=C:\Users\Cipta-NB\AppData\Local\Android\Sdk
这是Application.mk的内容
APP_ABI := armeabi-v7a
APP_PLATFORM := android-14
有没有(简单的)解决方法?
【问题讨论】:
-
您使用的是哪个版本的 NDK?最新版本 (r17) 不再支持 armeabi 作为目标。改为为 armeabi-v7a 和/或 arm64-v8a 构建。
-
NDK 版本:v17.0.4754217(由 SDK Manager 提供)。顺便说一句,我刚刚更新了我的问题。我的构建目标是 armeabi-v7a。
-
尝试在 build.gradle 中添加
abiFilters,因为您只为一个 abi 构建。 -
嗯...我修改了我的 gradle.properties 和 build.gradle(基于stackoverflow.com/questions/32487192/…)。好吧仍然是同样的错误。
-
您不需要修改 gradle.properties,只需将
ndk{abiFilters 'armeabi-v7a'}放入 build.gradle 中的defaultConfig中,如 here 所述。从您的输出中可以清楚地看出,gradle 会覆盖APP_ABI并将其设置为armeabi,正如 Michael 所指出的那样,它已被弃用。
标签: android android-studio android-ndk