Installer et configurer le NDK et CMake

Pour compiler et déboguer le code natif de votre application, vous avez besoin des composants suivants :

  • Le kit de développement Android natif (NDK) : ensemble d'outils qui vous permet d'utiliser le code C et C++ avec Android.
  • CMake : outil de compilation externe qui fonctionne avec Gradle pour créer votre bibliothèque native. Vous n'avez pas besoin de ce composant si vous prévoyez uniquement d'utiliser ndk-build.
  • LLDB : débogueur utilisé par Android Studio pour déboguer le code natif. Par défaut, LLDB sera installé avec Android Studio.

Cette page explique comment installer ces composants automatiquement, ou en utilisant Android Studio ou l'outil sdkmanager pour les télécharger et les installer manuellement.

Installer automatiquement le NDK et CMake

Le plug-in Android Gradle 4.2.0+ peut installer automatiquement CMake et le NDK requis la première fois que vous compilez votre projet si leurs licences ont été acceptées à l'avance. Si vous avez déjà lu et accepté les conditions d'utilisation de la licence, vous pouvez pré-accepter les licences dans des scripts à l'aide de la commande suivante :

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

Installer le NDK et CMake

Lorsque vous installez le NDK, Android Studio sélectionne le dernier NDK disponible. Pour la plupart des projets, l'installation de cette version par défaut du NDK est suffisante. Si votre projet nécessite une ou plusieurs versions spécifiques du NDK, vous pouvez télécharger et configurer des versions spécifiques. Cela vous permet de vous assurer que les compilations reproductibles des projets dépendent chacune d'une version spécifique du NDK. Android Studio installe toutes les versions du NDK dans le répertoire android-sdk/ndk/.

Pour installer CMake et le NDK par défaut dans Android Studio, procédez comme suit :

  1. Ouvrez un projet, puis cliquez sur Tools > SDK Manager (Outils > SDK Manager).

  2. Cliquez sur l'onglet SDK Tools.

  3. Cochez les cases NDK (Side by side) (NDK (côte à côte)) et CMake.

    Image de SDK Manager Figure 1. Fenêtre SDK Tools affichant l'option NDK (Side by side) (NDK (côte à côte))

  4. Cliquez sur OK.

    Une boîte de dialogue vous indique l'espace que le package NDK utilise sur le disque.

  5. Cliquez sur OK.

  6. Une fois l'installation terminée, cliquez sur Finish (Terminer).

  7. Votre projet synchronise automatiquement le fichier de compilation et exécute une compilation. Corrigez les erreurs qui se produisent.

Configurer une version spécifique de CMake

SDK Manager inclut la version dupliquée 3.6.0 de CMake et la version 3.10.2. Les projets qui ne définissent pas de version CMake spécifique sont créés avec CMake 3.10.2. Pour définir la version de CMake, ajoutez les éléments suivants au fichier build.gradle de votre module :

Groovy

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

Kotlin

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

Si vous souhaitez utiliser une version de CMake non incluse par SDK Manager, procédez comme suit :

  1. Téléchargez et installez CMake à partir du site Web officiel de CMake.
  2. Spécifiez la version de CMake que Gradle doit utiliser dans le fichier build.gradle de votre module.
  3. Ajoutez le chemin d'accès à l'installation de CMake à votre variable d'environnement PATH ou incluez-le dans le fichier local.properties de votre projet, comme indiqué. Si Gradle ne parvient pas à trouver la version de CMake que vous avez spécifiée dans le fichier build.gradle, vous obtenez une erreur de compilation.

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. Si le système de compilation Ninja n'est pas encore installé sur votre station de travail, accédez au site Web officiel de Ninja, puis téléchargez et installez la dernière version de Ninja disponible pour votre OS. Veillez également à ajouter le chemin d'accès à l'installation de Ninja à votre variable d'environnement PATH.

Installer une version spécifique du NDK

Pour installer une version spécifique du NDK, procédez comme suit :

  1. Ouvrez un projet, puis cliquez sur Tools > SDK Manager (Outils > SDK Manager).

  2. Cliquez sur l'onglet SDK Tools.

  3. Cochez la case Show Package Details (Afficher les détails du package).

  4. Cochez la case NDK (Side by side) (NDK (côte à côte)) et les cases situées en dessous correspondant aux versions NDK que vous souhaitez installer. Android Studio installe toutes les versions du NDK dans le répertoire android-sdk/ndk/.

    Image de la fenêtre SDK Tools Figure 2 : Fenêtre SDK Tools affichant les options NDK (Side by side) (NDK (côte à côte))

  5. Cliquez sur OK.

    Une boîte de dialogue vous indique l'espace que le ou les packages NDK utilisent.

  6. Cliquez sur OK.

  7. Une fois l'installation terminée, cliquez sur Finish (Terminer).

  8. Votre projet synchronise automatiquement le fichier de compilation et exécute une compilation. Corrigez les erreurs qui se produisent.

  9. Configurez chaque module avec la version du NDK que vous souhaitez utiliser. Lorsque vous utilisez Android Studio 3.6 ou version ultérieure, si vous ne spécifiez pas la version, le plug-in Android Gradle choisit une version avec laquelle il est compatible.

Configurer des versions spécifiques du NDK dans votre projet

Vous devrez peut-être configurer la version du NDK dans votre projet si l'une des conditions suivantes est remplie :

  • Votre projet est hérité, et vous devez utiliser des versions spécifiques du NDK et du plug-in Android Gradle (AGP). Pour en savoir plus, consultez Configurer le NDK pour le plug-in Android Gradle.
  • Plusieurs versions du NDK sont installées et vous souhaitez utiliser une version spécifique. Dans ce cas, spécifiez la version à l'aide de la propriété android.ndkVersion dans le fichier build.gradle du module, comme indiqué dans l'exemple de code suivant.

    Groovy

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

    Kotlin

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

Version NDK par défaut selon les versions AGP

Avant la publication, chaque version AGP est testée de manière approfondie avec la dernière version stable du NDK à ce moment-là. Cette version de NDK est utilisée pour compiler vos projets si vous ne spécifiez pas de version de NDK dans le fichier build.gradle. La version NDK par défaut des différentes versions d'AGP est documentée dans les notes de version d'AGP et dans les notes de version antérieures d'AGP.