android - 我的 NDK 项目因 CPU 架构相关问题而无法编译

标签 android android-ndk android-gradle-plugin

有人可以解释为什么我会收到此错误吗?

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 的屏幕截图 enter image description here

最佳答案

很可能,您安装了 NDK r17,它不再支持 armeabi。你的 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 比必要的更大。

您可能只需要在您的 APK 中加入 ABI,

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

关于android - 我的 NDK 项目因 CPU 架构相关问题而无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838856/

相关文章:

android - Cordova -插件-fcm : Cannot find name 'FCMPlugin'

android - 未定义对 `__android_log_print' 的引用

Android Studio 2 上的 Android NDK

Android Studio NDK 发布/调试定义

android - Gradle插件2.1.0 : app crashes on launch

android-studio - 从用户获取有关Android Studio中Gradle构建的输入

Android 共享存储保护问题

android - 和引擎中的 Sprite.setImage()

android - 使用同级目录中的 gradle 构建库

android - 如何禁用回收器 View 滚动以便它监听 Scrollview 布局?