web-dev-qa-db-fra.com

Android Erreur NDK. Impossible de construire le projet

J'obtiens l'erreur spécifiée suivante,

E:\SDK\ndk-bundle\build\core\setup-app-platform.mk

Erreur: (115) *** Android NDK: abandon. Arrêt. Erreur: échec d'exécution pour la tâche ': un7Zip: compileReleaseNdk'.

com.Android.ide.common.process.ProcessException: erreur lors de l'exécution du processus E:\sdk\ndk-bundle\ndk-build.cmd avec des arguments {NDK_PROJECT_PATH = null APP_BUILD_SCRIPT = E:\appRizort\RizortCardboard\un7Zip\build\intermediates\ndk\release\Android.mk APP_PLATFORM = Android-25 NDK_OUT = E:\appRizort\RizortCardboard\un7Zip\build\intermediates\ndk\release\obj NDK_LIBS_OUT = E:\appRizort\RizortCardboard\un7Zip\build\intermediates\ndk\release\lib APP_ABI = armeabi-v7a, armeabi, x86, arm64-v8a}

11
WanneBeNerd

Votre NDK_PROJECT_PATH est null, si votre chemin d'accès au dossier du projet contient des espaces blancs, cela peut provoquer ce problème.

6
mike

APP_PLATFORM que vous spécifiez lorsque vous créez la partie native de votre projet avec NDK est très important. L'histoire est décrite en détail dans le guide NDK :

Cette variable contient la version minimale de la plate-forme Android Android que vous souhaitez prendre en charge. Par exemple, une valeur de Android-15 spécifie que votre bibliothèque utilise des API qui ne sont pas disponibles ci-dessous Android 4.0.3 (API niveau 15) et ne peuvent pas être utilisées sur des appareils exécutant une version de plate-forme inférieure. Pour une liste complète des noms de plate-forme et images système Android système, voir Android API natives NDK .

Au lieu de modifier directement cet indicateur, vous devez définir la propriété minSdkVersion dans les blocs defaultConfig ou productFlavors de votre fichier build.gradle au niveau du module . Cela garantit que votre bibliothèque n'est utilisée que par des applications installées sur des appareils exécutant une version adéquate d'Android. La chaîne d'outils ndk-build utilise la logique suivante pour choisir la version de plate-forme minimale pour votre bibliothèque en fonction de l'ABI que vous créez et du minSdkVersion que vous spécifiez:

  1. S'il existe une version de plate-forme pour l'ABI égale à minSdkVersion, ndk-build utilise cette version.
  2. Sinon, s'il existe des versions de plate-forme inférieures à minSdkVersion pour l'ABI, ndk-build utilise la plus élevée de ces versions de plate-forme. C'est un choix raisonnable car une version de plate-forme manquante signifie généralement qu'il n'y a eu aucune modification des API de plate-forme natives depuis la version disponible précédente.
  3. Sinon, ndk-build utilise la prochaine version de plate-forme disponible supérieure à minSdkVersion.

NDK n'a pas de Android-25 Plate-forme. Tu peux choisir Android-24 ou (avec r15 beta), Android-26, si votre plate-forme minimale prise en charge est O. Si votre minSdkVersion est inférieure, ou en cas de doute, choisissez une plate-forme inférieure pour NDK, car les plates-formes NDK sont compatibles vers le haut.

3
Alex Cohn