web-dev-qa-db-fra.com

Problèmes de construction natifs externes Exemple d'Android Studio NDK HelloJni (échec de la construction)

Erreur: exécution de la génération native externe pour cmake C:\Utilisateurs\PC1\Bureau\ndkdata\GDNdkText\app\CMakeLists.txt

Erreur lors de la construction:

 Error Image

J'ai installé NDK, CMake, LLDP comme mentionné ici . Dois-je installer un autre outil ou définir des variables d'environnement? 

3
Gunjan Dave

ouvrez Terminal et lancez cette commande:

gradlew build --stacktrace

 enter image description here

3
Nick

Si vous utilisez Linux, vous devez installer Ninja. Sudo pour installer ninja-build

Testé aujourd'hui.

2
ariel

Vous devez également installer ncurses5 (pour Arch-linux son paquet AUR - ncurses5-compat-libs), car la prise en charge de NDK sur Android Studio 2.2 n’utilise pas ncurses6, qui est peut-être installé sur votre système.

2
krsoni

Si vous voulez créer votre projet sans inclure aucun fichier C++ , Assurez-vous de ne pas cocher la case mentionnant inclure C++ Au début du nouveau projet 

0
mohamed ossama

J'ai rencontré ce problème lors de l'importation d'un espace de travail d'un collègue. Nous obtenions des erreurs de construction natives externes. Et il semblait que le IDE ignorait beaucoup de commandes CMake.

Il s'avère que le problème est que je n’ai pas installé Ninja, comme le suggère le post d’Ariel ci-dessus. J'ai découvert cela en exécutant gradlew build --stacktrace et j'ai trouvé une ligne se plaignant de ne pas avoir installé Ninja. Note: nous développons dans un environnement linux.

Ninja est un système de construction axé sur la vitesse et utilisé pour remplacer make dans les systèmes comportant un grand nombre de fichiers d'entrée. Ninja Wiki

Une fois que j'ai installé ninja, tout se construit parfaitement!

0
Neil Ruggiero

vous devez installer ninja en utilisant homebrew

brew install ninja
0
InKwon Kim

Je pense que le problème est le mauvais emplacement du fichier CMakelist.txt.

Essayez de déplacer le fichier CMakelist.txt du répertoire racine de votre application vers le répertoire app/src/main/cpp/CMakelist.txt, puis mettez à jour l’emplacement à partir du fichier gradle également comme ceci:

externalNativeBuild {
    cmake {
        path "src/main/cpp/CMakeLists.txt"
    }
}
0
0xalihn