Installare e configurare NDK e CMake

Per compilare ed eseguire il debug del codice nativo per la tua app, devi disporre dei seguenti componenti:

  • Android Native Development Kit (NDK): un set di strumenti che consente di utilizzare codice C e C++ con Android.
  • CMake: uno strumento di creazione esterno che funziona insieme a Gradle per creare la tua libreria nativa. Questo componente non è necessario se prevedi di usare solo ndk-build.
  • LLDB: il debugger utilizzato da Android Studio per eseguire il debug del codice nativo. Per impostazione predefinita, LLDB verrà installato insieme ad Android Studio.

In questa pagina viene descritto come installare questi componenti automaticamente oppure come utilizzare Android Studio o lo strumento sdkmanager per scaricarli e installarli manualmente.

Installare NDK e CMake automaticamente

Il plug-in Android Gradle 4.2.0+ può installare automaticamente l'NDK e CMake richiesti la prima volta che crei il tuo progetto, se le relative licenze sono state accettate in anticipo. Se hai già letto e accettato i termini di licenza, puoi pre-accettare le licenze negli script utilizzando il seguente comando:

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

Installa NDK e CMake

Quando installi l'NDK, Android Studio seleziona l'NDK più recente disponibile. Per la maggior parte dei progetti è sufficiente l'installazione di questa versione predefinita dell'NDK. Tuttavia, se il progetto richiede una o più versioni specifiche dell'NDK, puoi scaricare e configurare versioni specifiche. In questo modo puoi garantire build riproducibili tra progetti, ognuno dei quali dipenda da una versione specifica dell'NDK. Android Studio installa tutte le versioni di NDK nella directory android-sdk/ndk/.

Per installare CMake e l'NDK predefinito in Android Studio, procedi nel seguente modo:

  1. Con un progetto aperto, fai clic su Strumenti > SDK Manager.

  2. Fai clic sulla scheda SDK Tools (Strumenti SDK).

  3. Seleziona le caselle di controllo NDK (Side by side) e CMake.

    Immagine di SDK Manager Figura 1. La finestra SDK Tools (Strumenti SDK) che mostra l'opzione NDK (Side by side)

  4. Fai clic su Ok.

    Una finestra di dialogo indica la quantità di spazio occupata dal pacchetto NDK su disco.

  5. Fai clic su Ok.

  6. Al termine dell'installazione, fai clic su Fine.

  7. Il progetto sincronizza automaticamente il file di build ed esegue una build. Correggi gli eventuali errori che si verificano.

Configurare una versione specifica di CMake

SDK Manager include la versione di CMake 3.6.0 creata con fork e la versione 3.10.2. I progetti che non impostano una versione specifica di CMake vengono creati con CMake 3.10.2. Per impostare la versione CMake, aggiungi quanto segue al file build.gradle del modulo:

Alla moda

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

Kotlin

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

Se vuoi utilizzare una versione CMake non inclusa da SDK Manager, segui questi passaggi:

  1. Scarica e installa CMake dal sito web ufficiale di CMake.
  2. Specifica la versione CMake che vuoi che Gradle utilizzi nel file build.gradle del modulo.
  3. Aggiungi il percorso dell'installazione di CMake alla variabile di ambiente PATH o includilo nel file local.properties del tuo progetto, come mostrato. Se Gradle non riesce a trovare la versione di CMake specificata nel file build.gradle, viene visualizzato un errore di generazione.

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. Se non hai ancora installato il sistema di build Ninja sulla tua workstation, visita il sito web ufficiale di Ninja, quindi scarica e installa l'ultima versione di Ninja disponibile per il tuo sistema operativo. Assicurati di aggiungere anche il percorso dell'installazione di Ninja alla variabile di ambiente PATH.

Installa una versione specifica dell'NDK

Per installare una versione specifica dell'NDK, segui questi passaggi:

  1. Con un progetto aperto, fai clic su Strumenti > SDK Manager.

  2. Fai clic sulla scheda SDK Tools (Strumenti SDK).

  3. Seleziona la casella di controllo Mostra dettagli del pacchetto.

  4. Seleziona la casella di controllo NDK (affiancata) e le caselle di controllo sottostanti corrispondenti alle versioni NDK da installare. Android Studio installa tutte le versioni dell'NDK nella directory android-sdk/ndk/.

    Immagine della finestra SDK Tools Figura 2. La finestra SDK Tools (Strumenti SDK) in cui sono mostrate le opzioni NDK (Side by side)

  5. Fai clic su Ok.

    Una finestra di dialogo indica la quantità di spazio utilizzata dai pacchetti NDK.

  6. Fai clic su Ok.

  7. Al termine dell'installazione, fai clic su Fine.

  8. Il progetto sincronizza automaticamente il file di build ed esegue una build. Correggi gli eventuali errori che si verificano.

  9. Configura ogni modulo con la versione dell'NDK che vuoi utilizzare. Quando utilizzi Android Studio 3.6 o versioni successive, se non specifica la versione, il plug-in Android per Gradle sceglie una versione con cui è noto che è compatibile.

Configura versioni specifiche dell'NDK nel tuo progetto

Potresti dover configurare la versione dell'NDK nel tuo progetto se una delle seguenti condizioni è vera:

  • Il tuo progetto viene ereditato e devi utilizzare versioni specifiche del plug-in NDK e del plug-in Android Gradle (AGP). Per maggiori informazioni, consulta Configurare l'NDK per il plug-in Android Gradle.
  • Hai installato più versioni dell'NDK e vuoi utilizzarne una specifica. In questo caso, specifica la versione utilizzando la proprietà android.ndkVersion nel file build.gradle del modulo, come mostrato nel seguente esempio di codice.

    Alla moda

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

    Kotlin

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

Versione NDK predefinita per versione AGP

Prima del rilascio, ogni versione AGP viene testata accuratamente con la release stabile più recente di NDK in quel momento. Questa versione NDK viene utilizzata per creare i progetti se non specifichi una versione NDK nel file build.gradle. La versione NDK predefinita per le diverse versioni di AGP è documentata nelle note di rilascio di AGP e nelle note di rilascio precedenti di AGP.