web-dev-qa-db-fra.com

Mon projet NDK ne parvient pas à compiler avec un problème lié à l'architecture du processeur

Quelqu'un peut-il expliquer pourquoi j'obtiens ces erreurs s'il vous plaît?

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.

Je laisse ici une capture d'écran de mon Android studio si cela peut être utile enter image description here

8
Kevinddn99

Très probablement, vous avez installé NDK r17, qui ne prend plus en charge armeabi. Votre plugin gradle n'est pas au courant de cette récente modification. Vous devez mettre à niveau: dans build.gradle, vous devriez avoir

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

et dans gradle/wrapper/gradle-wrapper.properties

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

Mais même après la mise à niveau, votre build.gradle n'a probablement pas l'instruction abiFilters, et donc la construction de votre projet est plus lente et APK plus grand que nécessaire.

Vous n'avez probablement besoin que d'ABI dans votre APK,

Android { defaultConfig { ndk {
    abiFilters 'armeabi-v7a'
} } }
10
Alex Cohn

J'ai eu cette erreur récemment - la cause était un mystère et l'est toujours. J'ai tout réinstallé, mais je n'ai pas pu nettoyer mon projet.

Finalement, j'ai supprimé manuellement le app/build et app/.externalNativeBuild dossiers, et le projet a été reconstruit correctement, et j'ai ensuite pu exécuter à nouveau Clean sans erreur.

1
Al.