NDK und CMake installieren und konfigurieren

Um nativen Code für Ihre App zu kompilieren und Fehler zu beheben, benötigen Sie die folgenden Komponenten:

  • Das Android Native Development Kit (NDK): Eine Reihe von Tools, mit denen Sie C- und C++-Code mit Android verwenden können.
  • CMake: ein externes Build-Tool, das zusammen mit Gradle Ihre native Bibliothek erstellt. Sie benötigen diese Komponente nicht, wenn Sie nur ndk-build verwenden möchten.
  • LLDB: der von Android Studio verwendete Debugger zum Debuggen von nativem Code Standardmäßig wird LLDB zusammen mit Android Studio installiert.

Auf dieser Seite wird beschrieben, wie du diese Komponenten automatisch installierst oder mit Android Studio oder dem sdkmanager-Tool herunterlädst und manuell installierst.

NDK und CMake automatisch installieren

Mit dem Android Gradle-Plug-in 4.2.0 und höher können der erforderliche NDK und CMake automatisch installiert werden, wenn Sie Ihr Projekt zum ersten Mal erstellen, wenn deren Lizenzen im Voraus akzeptiert wurden. Wenn Sie die Lizenzbedingungen bereits gelesen haben und ihnen zustimmen, können Sie die Lizenzen mit dem folgenden Befehl in Skripts vorab akzeptieren:

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

NDK und CMake installieren

Wenn Sie den NDK installieren, wählt Android Studio den neuesten verfügbaren NDK aus. Für die meisten Projekte reicht die Installation dieser Standardversion des NDK aus. Wenn Ihr Projekt jedoch eine oder mehrere spezifische Versionen des NDK benötigt, können Sie bestimmte Versionen herunterladen und konfigurieren. So lassen sich reproduzierbare Builds über Projekte hinweg erstellen, die jeweils von einer bestimmten Version des NDK abhängen. Android Studio installiert alle Versionen des NDK im Verzeichnis android-sdk/ndk/.

So installieren Sie CMake und den Standard-NDK in Android Studio:

  1. Klicken Sie bei geöffnetem Projekt auf Tools > SDK Manager.

  2. Klicken Sie auf den Tab SDK-Tools.

  3. Klicken Sie die Kästchen NDK (Side by side) und CMake an.

    Bild von SDK Manager Abbildung 1: Das Fenster SDK Tools mit der Option NDK (Side by side)

  4. Klicke auf OK.

    In einem Dialogfeld wird angezeigt, wie viel Speicherplatz das NDK-Paket auf der Festplatte belegt.

  5. Klicke auf OK.

  6. Klicken Sie nach Abschluss der Installation auf Fertigstellen.

  7. Ihr Projekt synchronisiert die Build-Datei automatisch und führt einen Build aus. Beheben Sie alle auftretenden Fehler.

Bestimmte CMake-Version konfigurieren

Der SDK Manager enthält die Fork-Version 3.6.0 von CMake und Version 3.10.2. Projekte, für die keine bestimmte CMake-Version festgelegt wird, werden mit CMake 3.10.2 erstellt. Zum Festlegen der CMake-Version fügen Sie der Datei build.gradle Ihres Moduls Folgendes hinzu:

Groovig

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

Kotlin

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

Wenn Sie eine CMake-Version verwenden möchten, die nicht im SDK Manager enthalten ist, gehen Sie so vor:

  1. Laden Sie CMake von der offiziellen CMake-Website herunter und installieren Sie es.
  2. Geben Sie in der Datei build.gradle des Moduls die CMake-Version an, die Gradle verwenden soll.
  3. Fügen Sie entweder den Pfad zur CMake-Installation in die Umgebungsvariablen PATH ein oder fügen Sie ihn wie gezeigt in die Datei local.properties Ihres Projekts ein. Wenn Gradle die in der Datei build.gradle angegebene Version von CMake nicht finden kann, wird ein Build-Fehler angezeigt.

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. Wenn Sie das Ninja-Build-System noch nicht auf Ihrer Workstation installiert haben, rufen Sie die offizielle Ninja-Website auf, laden Sie die neueste Version von Ninja herunter, die für Ihr Betriebssystem verfügbar ist, und installieren Sie sie. Vergessen Sie nicht, den Pfad zur Ninja-Installation in die Umgebungsvariable PATH aufzunehmen.

Eine bestimmte Version des NDK installieren

So installieren Sie eine bestimmte Version des NDK:

  1. Klicken Sie bei geöffnetem Projekt auf Tools > SDK Manager.

  2. Klicken Sie auf den Tab SDK-Tools.

  3. Klicken Sie das Kästchen Show Package Details (Paketdetails anzeigen) an.

  4. Klicken Sie das Kästchen NDK (Side by side) und darunter die Kästchen für die NDK-Versionen an, die Sie installieren möchten. Android Studio installiert alle Versionen des NDK im Verzeichnis android-sdk/ndk/.

    Bild des Fensters „SDK-Tools“ Abbildung 2: Das Fenster SDK-Tools mit den Optionen für NDK (Side-by-Side)

  5. Klicke auf OK.

    In einem Dialogfeld wird angezeigt, wie viel Speicherplatz das NDK-Paket bzw. die NDK-Pakete belegen.

  6. Klicke auf OK.

  7. Klicken Sie nach Abschluss der Installation auf Fertigstellen.

  8. Ihr Projekt synchronisiert die Build-Datei automatisch und führt einen Build aus. Beheben Sie alle auftretenden Fehler.

  9. Konfigurieren Sie jedes Modul mit der Version des NDK, das es verwenden soll. Wenn Sie die Version von Android Studio 3.6 oder höher nicht angeben, wählt das Android-Gradle-Plug-in eine Version aus, mit der es bekanntermaßen kompatibel ist.

Bestimmte Versionen des NDK im Projekt konfigurieren

Unter Umständen müssen Sie die Version des NDK in Ihrem Projekt konfigurieren, wenn eine der folgenden Aussagen zutrifft:

  • Ihr Projekt wird übernommen und Sie müssen bestimmte Versionen des NDK und des Android-Gradle-Plug-ins (AGP) verwenden. Weitere Informationen finden Sie unter NDK für das Android-Gradle-Plug-in konfigurieren.
  • Sie haben mehrere Versionen des NDK installiert und möchten eine bestimmte verwenden. In diesem Fall geben Sie die Version mit dem Attribut android.ndkVersion in der Datei build.gradle des Moduls an, wie im folgenden Codebeispiel gezeigt.

    Groovig

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

    Kotlin

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

NDK-Standardversion pro AGP-Version

Vor der Veröffentlichung wird jede AGP-Version gründlich mit der zu diesem Zeitpunkt aktuellen stabilen NDK-Version getestet. Diese NDK-Version wird zum Erstellen Ihrer Projekte verwendet, wenn Sie in der Datei build.gradle keine NDK-Version angeben. Die NDK-Standardversion für verschiedene AGP-Versionen ist in den AGP-Versionshinweisen und den früheren AGP-Versionshinweisen dokumentiert.