我的NDK项目编译失败,出现了与CPU架构相关的问题。

9
能有人解释一下我为什么会出现这些错误吗?
Build command failed.


Error while executing process C:\Users\Kevin\Desktop\Android\Sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Kevin\Desktop\Mygame\proj.android-studio\app\jni\Android.mk NDK_APPLICATION_MK=C:\Users\Kevin\Desktop\Mygame\proj.android-studio\app\jni\Application.mk APP_ABI=armeabi NDK_ALL_ABIS=armeabi NDK_DEBUG=1 APP_PLATFORM=android-14 NDK_OUT=C:/Users/Kevin/Desktop/Mygame/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\Kevin\Desktop\Mygame\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib NDK_TOOLCHAIN_VERSION=4.9 APP_PLATFORM=android-10 NDK_MODULE_PATH=C:/Users/Kevin/Desktop/Mygame/cocos2d;C:/Users/Kevin/Desktop/Mygame/cocos2d/cocos;C:/Users/Kevin/Desktop/Mygame/cocos2d/external -j4 NDK_DEBUG=1 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.
Build command failed.


Error while executing process C:\Users\Kevin\Desktop\Android\Sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Kevin\Desktop\Mygame\proj.android-studio\app\jni\Android.mk NDK_APPLICATION_MK=C:\Users\Kevin\Desktop\Mygame\proj.android-studio\app\jni\Application.mk APP_ABI=armeabi NDK_ALL_ABIS=armeabi NDK_DEBUG=0 APP_PLATFORM=android-14 NDK_OUT=C:/Users/Kevin/Desktop/Mygame/proj.android-studio/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT=C:\Users\Kevin\Desktop\Mygame\proj.android-studio\app\build\intermediates\ndkBuild\release\lib NDK_TOOLCHAIN_VERSION=4.9 APP_PLATFORM=android-10 NDK_MODULE_PATH=C:/Users/Kevin/Desktop/Mygame/cocos2d;C:/Users/Kevin/Desktop/Mygame/cocos2d/cocos;C:/Users/Kevin/Desktop/Mygame/cocos2d/external -j4 NDK_DEBUG=0 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.

我在这里留下了我的Android Studio截图,如果有帮助的话。 输入图像描述


请展示您的应用程序级别gradle.build文件。花点时间查看stackoverflow.com/tour,以了解如何提问。 - Jon Goodwin
我和 @Kevinddn99 面临同样的问题。你找到任何解决方案了吗? - RushDroid
遇到了同样的问题。有解决方案吗? - Muhammad Muzammil
有人解决了这个错误吗? - Moustafa EL-Saghier
2个回答

12

很可能您安装了不再支持armeabi的NDK r17。 您的gradle插件不知道这个最近的更改。 您必须升级:在 build.gradle 中,您应该有:

buildscript { dependencies {
    classpath 'com.android.tools.build:gradle:3.1.2'
} }

并且在 gradle/wrapper/gradle-wrapper.properties 文件中

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

即使升级后,你的 build.gradle 很可能缺少 abiFilters 语句,因此您的项目建立速度比必要的更慢且 APK 更大。

您可能只需要一个 ABI 在您的 APK 中,

android { defaultConfig { ndk {
    abiFilters 'armeabi-v7a'
} } }

1
我仍然收到错误提示,我尝试了classpath 'com.android.tools.build:gradle:3.1.3',但没有任何改变。 - Adrian Buciuman
@AdrianBuciuman 注意,Build command failed 可能有许多与 ndkBuild 相关的原因,不一定与 NDK 和 Grade 插件版本不匹配有关。 - Alex Cohn

2
最初的回答:我最近遇到了这个错误 - 原因是一个谜,而且现在仍然是。 我重新安装了一切,但是我无法使我的项目“清理”。 最后,我手动删除了app/buildapp/.externalNativeBuild文件夹,项目重新构建成功,然后我又能再次无误地运行Clean了。

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