安卓工作室3.1.2上出现NDK_PROJECT_PATH=null

9
我正试图构建一个涉及NDK的Android项目:CoolMicApp-Android(已经安装了最新版本的Android Studio和NDK)
我按照BUILDING文件说明正确操作。但当在Android Studio中加载该项目时,出现了一些错误:

Build command failed.

Error while executing 'C:\Users\Cipta-NB\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd' with arguments {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: INTERNAL ERROR: The armeabi ABI should have exactly one architecture definitions. Found: ''

process_begin: CreateProcess(NULL, "", ...) failed.

*** Android NDK: Aborting... . Stop. Open File

尽管可以通过运行以下命令成功构建C库:

ndk-build 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

有没有(简单的)解决方法?

1
你使用的NDK是哪个确切的版本?最新版本(r17)不再支持armeabi作为目标。请改为构建armeabi-v7a和/或arm64-v8a。 - Michael
NDK版本:v17.0.4754217(由SDK Manager提供)。顺便说一下,我刚刚稍微更新了我的问题。我的构建目标是armeabi-v7a。 - anta40
尝试在您的 build.gradle 中添加 abiFilters,因为您只构建一个 abi。 - Mikhail Vasilyev
哦?我修改了我的gradle.properties和build.gradle文件(基于https://dev59.com/HFwY5IYBdhLWcg3wkIYi)。然而,错误还是一样的。 - anta40
1
你不需要修改gradle.properties文件,只需按照此处描述的方式将ndk {abiFilters 'armeabi-v7a'}放在build.gradle中的defaultConfig内即可。从你的输出可以看出,gradle会覆盖APP_ABI并将其设置为已被Michael指出的已废弃的armeabi - Mikhail Vasilyev
1个回答

7
  1. NDK_PROJECT_PATH=null只是一个红色的引子,看起来很惊人,但它不是错误。这是在Android Studio中配置NDK构建的方式。

  2. 最新的NDK r17停止支持一些ABI。不幸的是,旧版Gradle插件不知道这一点。您可以通过调整您的build.gradle脚本来解决这个不一致性,但升级插件更容易和更安全。


1
谢谢。将Gradle升级到最新版本可以解决这个问题 :) - anta40
请您友好地将问题重命名以避免混淆,例如改为“在Android Studio 3.1.2中出现的带有armeabi的NDK错误”或类似的名称。 - Alex Cohn
@anta40 你用的是哪个版本?Gradle 版本为 3.1.3 仍然会出现错误。 - Eswar
@MuhammadHassaan,你解决了吗?我这里也遇到了同样的错误。 - Moustafa EL-Saghier
@moustaf-el-saghier 是的,我解决了,但我使用 Cmake 编译本地代码而不是 Ndk Build。 - Muhammad Hassaan
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接