Cómo instalar y configurar el NDK y CMake

Para compilar y depurar el código nativo para tu app, necesitas los siguientes componentes:

  • El kit de desarrollo nativo (NDK) de Android es un conjunto de herramientas que te permite utilizar código C y C++ con Android.
  • CMake es una herramienta de compilación externa que funciona junto con Gradle para compilar tu biblioteca nativa. No necesitas este componente si solo planeas usar ndk-build.
  • LLDB es el depurador que usa Android Studio para depurar código nativo. De forma predeterminada, LLDB se instala junto con Android Studio.

En esta página, se describe cómo usar Android Studio o la herramienta sdkmanager para descargar y, luego, instalar estos componentes.

Cómo instalar el NDK y CMake

Cuando instalas el NDK, Android Studio selecciona el último NDK disponible. Para la mayoría de los proyectos, instalar esta versión predeterminada del NDK es suficiente. Sin embargo, si tu proyecto necesita una o más versiones específicas del NDK, puedes descargarlas y configurarlas. Esto te ayudará a garantizar compilaciones reproducibles en proyectos que dependen de una versión específica del NDK. Android Studio instala todas las versiones del NDK en el directorio android-sdk/ndk/.

Para instalar CMake y el NDK predeterminado en Android Studio, debes hacer lo siguiente:

  1. Con un proyecto abierto, haz clic en Tools > SDK Manager.

  2. Haz clic en la pestaña SDK Tools.

  3. Selecciona las casillas de verificación NDK (Side by side) y CMake.

    Imagen de SDK Manager Figura 1: La ventana SDK Tools donde se muestra la opción NDK (Side by side)

  4. Haz clic en Aceptar.

    Un cuadro de diálogo te indica cuánto espacio consume el paquete NDK en el disco.

  5. Haz clic en Aceptar.

  6. Cuando finalices la instalación, haz clic en Finish.

  7. Tu proyecto sincronizará automáticamente el archivo de compilación y realizará una. Resuelve cualquier error que ocurra.

Cómo instalar una versión específica del NDK

Para instalar una versión específica del NDK, debes hacer lo siguiente:

  1. Con un proyecto abierto, haz clic en Tools > SDK Manager.

  2. Haz clic en la pestaña SDK Tools.

  3. Selecciona la casilla de verificación Show Package Details.

  4. Selecciona la casilla de verificación NDK (Side by side) y las que se encuentran debajo de ella que corresponden a las versiones del NDK que deseas instalar. Android Studio instala todas las versiones del NDK en el directorio android-sdk/ndk/.

    Imagen de la ventana SDK Tools Figura 2: La ventana SDK Tools donde se muestran las opciones de NDK (Side by side)

  5. Haz clic en Aceptar.

    Un cuadro de diálogo te indica cuánto espacio consumen los paquetes NDK.

  6. Haz clic en Aceptar.

  7. Cuando finalices la instalación, haz clic en Finish.

  8. Tu proyecto sincronizará automáticamente el archivo de compilación y realizará una. Resuelve cualquier error que ocurra.

  9. Configura cada módulo con la versión del NDK que quieres que use. Cuando usas Android Studio 3.6 o una versión posterior, si no especificas la versión, el complemento de Gradle para Android elige una versión que reconoce como compatible.

Cómo instalar el NDK desde la línea de comandos

Para instalar una o más versiones del NDK desde la línea de comandos, debes hacer lo siguiente:

  1. Usa la herramienta sdkmanager para ver las versiones de los paquetes CMake y NDK que están disponibles:

    sdkmanager --list
        
  2. Pasa las strings sdkmanager para los paquetes que deseas instalar. Por ejemplo, para instalar CMake y el NDK, usa la siguiente sintaxis:

        sdkmanager --install
                  "ndk;major.minor.build"
                  "cmake;major.minor.micro.build"
        
  3. Configura cada módulo en tu proyecto con la versión del NDK que deseas que use.

Cómo configurar versiones específicas del NDK en tu proyecto

Si instalas una versión específica del NDK y deseas usarla en un módulo, especifícala mediante la propiedad android.ndkVersion en el archivo build.gradle del módulo, como se muestra en la siguiente muestra de código.

    android {
        ndkVersion "major.minor.build"
    }