Je dois ajouter du code C/C++ dans mon programme Android pour lequel j'avais besoin de LLDB, CMake et NDK. J'ai trouvé LLDB et NDK dans le gestionnaire de SDK, mais CMake en manque. J'ai essayé de le télécharger manuellement à partir du site officiel de CMake et j'ai découvert que pour Android, nous avons besoin du CMK personnalisé par SDK.
Comme vous pouvez le constater, il n’existe pas d’option comme CMake.
Où puis-je trouver une version de CMake pour Android?
J'ai essayé CMake sur le site Web et celui que j'ai trouvé dans le dossier ndk-bundle/build, mais les deux donnent la même erreur que ci-dessous. Que peut-on en tirer et comment résoudre le problème?
Build command failed.
Error while executing 'C:\Users\amishr33\AppData\Local\Android\sdk\cmake\bin\cmake.exe' with arguments {-HC:\Users\amishr33\AndroidStudioProjects\MyApplication\app\src\main\jni -BC:\Users\amishr33\AndroidStudioProjects\MyApplication\app\.externalNativeBuild\cmake\debug\armeabi -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=C:\Users\amishr33\AppData\Local\Android\sdk\ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\amishr33\AndroidStudioProjects\MyApplication\app\build\intermediates\cmake\debug\obj\armeabi -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=C:\Users\amishr33\AppData\Local\Android\sdk\cmake\bin\ninja.exe -DCMAKE_TOOLCHAIN_FILE=C:\Users\amishr33\AppData\Local\Android\sdk\ndk-bundle\build\cmake\Android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=15 -DCMAKE_CXX_FLAGS=-std=c++11 -DANDROID_TOOLCHAIN=clang -DANDROID_STL=gnustl_static}
CMake Error: Could not create named generator Android Gradle - Ninja
Generators
Visual Studio 15 2017 [Arch] = Generates Visual Studio 2017 project files.
Optional [Arch] can be "Win64" or "ARM".
Visual Studio 14 2015 [Arch] = Generates Visual Studio 2015 project files.
Optional [Arch] can be "Win64" or "ARM".
Visual Studio 12 2013 [Arch] = Generates Visual Studio 2013 project files.
Optional [Arch] can be "Win64" or "ARM".
Visual Studio 11 2012 [Arch] = Generates Visual Studio 2012 project files.
Optional [Arch] can be "Win64" or "ARM".
Visual Studio 10 2010 [Arch] = Generates Visual Studio 2010 project files.
Optional [Arch] can be "Win64" or "IA64".
Visual Studio 9 2008 [Arch] = Generates Visual Studio 2008 project files.
Optional [Arch] can be "Win64" or "IA64".
Visual Studio 8 2005 [Arch] = Generates Visual Studio 2005 project files.
Optional [Arch] can be "Win64".
Visual Studio 7 .NET 2003 = Deprecated. Generates Visual Studio .NET
2003 project files.
Borland Makefiles = Generates Borland makefiles.
NMake Makefiles = Generates NMake makefiles.
NMake Makefiles JOM = Generates JOM makefiles.
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
MSYS Makefiles = Generates MSYS makefiles.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - MinGW Makefiles = Generates CodeLite project files.
CodeLite - NMake Makefiles = Generates CodeLite project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Sublime Text 2 - MinGW Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - NMake Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
Kate - MinGW Makefiles = Generates Kate project files.
Kate - NMake Makefiles = Generates Kate project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Eclipse CDT4 - NMake Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - MinGW Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
Error:executing external native build for cmake C:\Users\amishr33\AndroidStudioProjects\MyApplication\app\src\main\jni\CMakeLists.txt
Si vous procédez comme suit, vous obtiendrez CMake sans aucun problème:
Vérifiez votre fichier build.gradle pour le module de votre application
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
Supprimer la section cmake
Re-synchronisez le projet: Allez au menu Build -> Refersh Lined C++ Projects
Cliquez avec le bouton droit sur le module, tel que le module d'application, sélectionnez "Lier un projet C++ avec Gradle" dans le menu.
Vous devriez voir une boîte de dialogue semblable à celle montrée dans la figure ci-dessous.
Cliquez sur OK.
Dans mon cas (Android Studio 3.0), il n'y avait pas de CMake dans l'onglet "Outils du SDK" des options "Apparence et comportement -> Paramètres système -> SDK Android". Cependant, j'ai remarqué que dans l'onglet "Sites de mise à jour du SDK", il n'y avait que deux entrées, l'une d'entre elles (Android Repository https://dl.google.com/Android/repository/repository2-1.xml ) avait une marque rouge dans la colonne "activé". Il lit "erreur 407" au passage de la souris, ce qui est une erreur d’authentification du proxy. J'avais les paramètres de proxy corrects (la connexion de test fonctionnait correctement avec la même URL de référentiel), donc c'était très étrange. Redémarrer Android Studio n'a pas aidé. J'ai donc ajouté une nouvelle entrée avec le même référentiel. Cette fois, cela a bien fonctionné et CMake est apparu dans l'autre onglet. J'espère que ça aide quelqu'un.
Vous pouvez l'installer dans les outils du SDK Manager, mais vous devez d'abord fermer votre projet ouvert. Utilisez la configuration dans le menu de démarrage.
Vérifiez si vous utilisez une version 64 bits d'Android Studio. Dans Android Studio 32 bits, CMake n'apparaîtra pas dans le gestionnaire de SDK.
place le chemin du module où se trouve votre cmake
si votre cmake existe dans l'application principale
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
si votre cmake existe dans n'importe quel module
externalNativeBuild {
cmake {
path file('../modulelib/CMakeLists.txt')
}
}
où "modulelib" est le nom de dossier de votre module de bibliothèque
Dans mon cas, changer CMake path
a fonctionné:
externalNativeBuild {
/*
cmake {
path "CMakeLists.txt"
}
*/
cmake {
path 'src/main/jni/opus/CMakeLists.txt'
}
}
Pour moi, Mac OS Android Studio. Dans Fichier-> Structure du projet-> Projet, j'ai changé la version de Gradle vers la version 4.4 et la version du plug-in Android vers la version 3.1.0.
De plus, vous pouvez également changer la version du plugin Android dans gradle-> classpath 'com.Android.tools.build:gradle:3.1.0'
Cochez cette case, je pense que ce site explique ce dont vous avez besoin:
N'oubliez pas de cocher la case "Ce dont vous aurez besoin"
NDK: https://developer.Android.com/ndk/downloads/index.html Source: https://developer.Android.com/ndk/index.html
CMake: https://cmake.org/files/v3.7/cmake-3.7.1-win64-x64.Zip Source: https://cmake.org/
LLDB (Juste pour les systèmes Debian): http://apt.llvm.org/ Source: http://lldb.llvm.org/download.html
Une fois que vous avez téléchargé ces fichiers, copiez-les dans votre dossier SDK (normalement dans: "C:\Android-sdk \") Vous pouvez localiser le dossier ici:
Ensuite, vous pouvez continuer avec le guide précédent après les téléchargements :)