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 instalar esos componentes automáticamente, como también mediante Android Studio o la herramienta sdkmanager para descargarlos e instalarlos de forma manual.

Cómo instalar NDK y CMake automáticamente

Android Gradle Plugin 4.2.0 y sus versiones posteriores pueden instalar automáticamente los NDK y CMake necesarios cuando compilas el proyecto por primera vez si se aceptaron las licencias con anticipación. Si ya leíste y aceptas los términos de la licencia, entonces puedes aceptar previamente las licencias en las secuencias de comandos con el siguiente comando:

   yes | ${sdk}/cmdline-tools/latest/bin/sdkmanager --licenses

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 esa 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. Eso te ayudará a garantizar compilaciones reproducibles en proyectos que dependan 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 OK.

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

  5. Haz clic en OK.

  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 se genere.

Cómo configurar una versión específica de CMake

SDK Manager incluye la versión bifurcada de CMake 3.6.0 y 3.10.2. Los proyectos en los que no se configura una versión específica de CMake se compilan con CMake 3.10.2. Para configurar la versión de CMake, agrega lo siguiente al archivo build.gradle de tu módulo:

Groovy

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version "cmake-version"
        }
    }
}

Kotlin

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version = "cmake-version"
        }
    }
}

Si deseas usar una versión de CMake que no se incluye en SDK Manager, sigue estos pasos:

  1. Descarga e instala CMake desde el sitio web oficial de CMake.
  2. Especifica la versión de CMake que deseas que use Gradle en el archivo build.gradle del módulo.
  3. Agrega la ruta de acceso a la instalación de CMake a la variable de entorno PATH o inclúyela en el archivo local.properties del proyecto, como se muestra a continuación. Si Gradle no encuentra la versión de CMake que especificaste en el archivo build.gradle, se mostrará un error de compilación.

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. Si aún no tienes instalado el sistema de compilación Ninja en tu estación de trabajo, accede al sitio web oficial y descarga e instala la versión más reciente disponible para tu SO. Asegúrate de agregar también la ruta de acceso a la instalación de Ninja a la variable de entorno PATH.

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 correspondan 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 OK.

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

  6. Haz clic en OK.

  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 se genere.

  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 que reconoce como compatible.

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

Es posible que debas configurar la versión del NDK en tu proyecto si se cumple alguna de las siguientes condiciones:

  • Tu proyecto es heredado y debes usar versiones específicas del NDK y del complemento de Gradle para Android (AGP). Para obtener más información, consulta Cómo configurar el NDK para el complemento de Gradle para Android.
  • Hay varias versiones del NDK instaladas y quieres usar una específica. En ese caso, indica la versión mediante la propiedad android.ndkVersion en el archivo build.gradle del módulo, como se muestra en la siguiente muestra de código.

    Groovy

    android {
        ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }

    Kotlin

    android {
        ndkVersion = "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }

Versión predeterminada del NDK según la versión del AGP

Antes del lanzamiento, cada versión de AGP se prueba de forma exhaustiva con la versión estable del NDK más reciente en ese momento. Esta versión del NDK se usa para compilar tus proyectos si no especificas una versión del NDK en el archivo build.gradle. La versión predeterminada del NDK para diferentes versiones de AGP se documenta en las notas de la versión de AGP y en las notas de versiones anteriores de AGP.