【问题标题】:NDK_PROJECT_PATH=null on Android Studio 3.1.2Android Studio 3.1.2 上的 NDK_PROJECT_PATH=null
【发布时间】: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


【解决方案1】:
  1. NDK_PROJECT_PATH=null 是一个红鲱鱼。它只看起来令人震惊。这不是错误。这就是在 Android Studio 中配置 NDK 构建的方式。

  2. 最新的 NDK r17 放弃了对某些 ABI 的支持。不幸的是,旧的 Gradle 插件不知道这一点。您可以通过tuning your build.gradle script 解决此不一致问题,但upgrading the plugin 更简单、更安全。

【讨论】:

  • 谢谢。将 Gradle 升级到最新版本可以解决这个问题 :)
  • 您能否重命名该问题以避免混淆,可能是 "Android Studio 3.1.2 中 armeabi 出现 NDK 错误" 或类似名称。
  • @anta40 你用的是哪个版本的? 3.1.3的gradle版本还是报错。
  • @Eswar 你找到解决办法了吗?
  • @MuhammadHassaan 我解决了,但已经有一段时间了。如果我没记错的话,基本上升级包解决了大部分问题。但是,abiFilters 和 Application.mk 存在一些小问题
猜你喜欢
  • 2014-11-28
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 2018-11-08
  • 1970-01-01
相关资源
最近更新 更多