ndk - No se puede encontrar CMake en Android Studio
ndk version 11c (12)
Necesito agregar código C / C ++ en mi programa Android para el que necesitaba LLDB, CMake y NDK. Encontré LLDB y NDK en el administrador de SDK, pero CMake falta desde allí. Intenté descargarlo manualmente desde el sitio oficial de CMake y descubrí que para Android necesitamos SDa CMake personalizado.
Como puede ver, no hay una opción como CMake.
¿Dónde encuentro una versión de CMake para Android?
Intenté CMake desde el sitio web y encontré uno en la carpeta ndk-bundle / build, pero ambos están dando el mismo error que a continuación. ¿Qué se puede sacar de él y cómo se puede resolver el problema?
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
-
Revise su archivo build.gradle para el módulo de su aplicación
externalNativeBuild { cmake { path "CMakeLists.txt" } }
-
Retire la sección
cmake
-
Vuelva a sincronizar el proyecto: vaya al menú Generar -> Actualizar proyectos de C ++ alineados
-
Haga clic derecho en el módulo, como el módulo de la aplicación, seleccione "Link C ++ Project with Gradle" en el menú.
-
Debería ver un cuadro de diálogo similar al que se muestra en la figura siguiente.
-
Haga clic en Aceptar.
Compruebe si está utilizando una versión de 64 bits de Android Studio. En Android Studio de 32 bits, CMake no aparecerá en SDK Manager.
En mi caso (Android Studio 3.0), no había CMake en la pestaña "Herramientas del SDK" en las opciones "Apariencia y comportamiento -> Configuración del sistema -> SDK de Android". Sin embargo, noté que en la pestaña "Sitios de actualización de SDK", solo hay dos entradas, una de las cuales (Android Repository https://dl.google.com/android/repository/repository2-1.xml ) tenía una marca roja en la columna "habilitado". Se lee "error 407" en mouseover, que es un error de autenticación de proxy. Tenía la configuración de proxy correcta (la conexión de prueba funcionó bien con la misma URL del repositorio), así que esto fue muy extraño. Reiniciar el estudio de Android no ayudó. Así que agregué una nueva entrada con el mismo repositorio y esta vez funcionó bien y CMake apareció en la otra pestaña. Espero que esto ayude a alguien.
En mi caso, cambiar la
CMake path
funcionó:
externalNativeBuild {
/*
cmake {
path "CMakeLists.txt"
}
*/
cmake {
path ''src/main/jni/opus/CMakeLists.txt''
}
}
Mira esto, creo que este sitio explica lo que necesitas:
Recuerde marcar "Lo que necesitará"
Actualizar:
NDK: https://developer.android.com/ndk/downloads/index.html fuente: https://developer.android.com/ndk/index.html
CMake: https://cmake.org/files/v3.7/cmake-3.7.1-win64-x64.zip fuente: https://cmake.org/
LLDB (solo para sistemas Debian): http://apt.llvm.org/ fuente: http://lldb.llvm.org/download.html
Una vez que descargue estos archivos, cópielos en su carpeta SDK (normalmente en: "C: / android-sdk /"). Puede localizar la carpeta aquí:
- Archivo -> Estructura del proyecto en Estructura del proyecto
- Izquierda -> Ubicación del SDK
Luego puede continuar con la guía anterior después de las descargas :)
Para mí, Mac OS Android Studio. en Archivo-> Estructura del proyecto-> Proyecto, cambié la versión de Gradle a 4.4 y la versión del complemento de Android a 3.1.0, luego se pone bien.
Además, también puede cambiar la versión del complemento de Android en gradle-> classpath ''com.android.tools.build:gradle:3.1.0''
Puede instalarlo en SDK Manager Tools, pero primero debe cerrar su proyecto abierto. Use la configuración en el menú de inicio.
Si hace lo siguiente, puede obtener CMake sin ningún problema:
- Abra la configuración (Android Studio);
- Búsqueda por "Android SDK";
- En el lado derecho, vaya a la pestaña "paleta Herramientas SDK";
- Verifique el elemento "CMake" en la lista;
- Presione el botón OK ;
- Ahora, solo espere el próximo siglo mientras Gradle construye, = D.
- Abra Android Studio 🙂
- Desplácese sobre su barra de herramientas hasta que encuentre SDK Manager , como en la imagen de arriba
- Haga clic en SDK Manager
- En Preferencias predeterminadas , vaya a Apariencia y comportamiento
- Ahora seleccione Configuración del sistema
- Ahora seleccione Android SDK
- Haga clic en Herramientas SDK
- Compruebe en CMake
Coloque la ruta del módulo donde está su cmake
si tu cmake existe en la aplicación principal
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
si tu cmake existe en algún módulo
externalNativeBuild {
cmake {
path file(''../modulelib/CMakeLists.txt'')
}
}
donde "modulelib" es el nombre de la carpeta del módulo de la biblioteca