Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Kompilieren für Android

Siehe auch

Diese Seite beschreibt, wie man Android-Exportvorlagen-Binärdateien aus dem Quellcode kompiliert. Wenn Sie Ihr Projekt stattdessen nach Android exportieren möchten, lesen Sie Exportieren für Android.

Anmerkung

In den meisten Fällen reicht es aus, den integrierten Deployer und die Exportvorlagen zu verwenden. Das manuelle Kompilieren der Android-APK ist vor allem für benutzerdefinierte Builds oder benutzerdefinierte Pakete für den Deployer nützlich.

Außerdem müssen Sie immer noch die im Exportieren für Android-Tutorial genannten Schritte befolgen, bevor Sie versuchen, eine benutzerdefinierte Exportvorlage zu erstellen.

Anforderungen

Zum Kompilieren unter Windows, Linux oder MacOS ist Folgendes erforderlich:

  • Python 3.6+.

  • SCons 3.0+-Buildsystem.

  • Android SDK (Kommandozeilen-Tools reichen aus).

    • Erforderliche SDK-Komponenten werden automatisch installiert.

    • Unter Linux,

      verwenden Sie kein Android-SDK, das von den Repositorys Ihrer Distribution bereitgestellt wird, da es oft veraltet ist.

  • Gradle (wird automatisch heruntergeladen und installiert, wenn es fehlt).

  • JDK 17 (entweder OpenJDK oder Oracle JDK).

    • Sie können einen Build herunterladen von ojdkbuild.

Siehe auch

Um den Godot-Quellcode zum Kompilieren zu erhalten, siehe Beschaffung des Quellcodes.

Eine allgemeine Übersicht über die Verwendung von SCons für Godot finden Sie unter Einführung in das Buildsystem.

Buildsystem einrichten

  • Setzen Sie die Umgebungsvariable ANDROID_HOME so, dass sie auf das Android SDK zeigt. Wenn Sie die Android-Kommandozeilen-Tools heruntergeladen haben, ist dies der Ordner, in den Sie den Inhalt des ZIP-Archivs entpackt haben.

  • Installieren Sie die erforderlichen SDK-Komponenten in diesem Ordner:

    • Akzeptieren Sie die SDK-Komponentenlizenzen, indem Sie den folgenden Befehl ausführen, wobei android_sdk_path der Pfad zum Android SDK ist, und beantworten Sie dann alle Fragen mit y:

    cmdline-tools/latest/bin/sdkmanager --sdk_root=<android_sdk_path> --licenses
    
    • Schließen Sie das Setup ab, indem Sie den folgenden Befehl ausführen, wobei android_sdk_path der Pfad zum Android SDK ist.

    cmdline-tools/latest/bin/sdkmanager --sdk_root=<android_sdk_path> "platform-tools" "build-tools;30.0.3" "platforms;android-29" "cmdline-tools;latest" "cmake;3.10.2.4988404"
    

Siehe auch

Um die Umgebungsvariable unter Windows zu setzen, drücken Sie die Tastenkombination Windows + R, geben Sie "Kontrollsystem" ein, klicken Sie auf Erweiterte Systemeinstellungen im linken Fenster und klicken Sie dann auf Umgebungsvariablen im angezeigten Fenster.

Siehe auch

Um die Umgebungsvariable unter Linux oder macOS zu setzen, verwenden Sie export ANDROID_HOME=/path/to/android-sdk, wobei /path/to/android-sdk auf den Root der SDK-Verzeichnisse zeigt.

Erstellen der Exportvorlagen

Godot benötigt zwei Exportvorlagen für Android: die optimierte "Release"-Vorlage (android_release.apk) und die Debug-Vorlage (android_debug.apk). Da Google ab August 2019 von allen APKs verlangt, dass sie ARMv8 (64-Bit)-Bibliotheken enthalten, werden die folgenden Befehle eine APK erstellen, die sowohl ARMv7- als auch ARMv8-Bibliotheken enthält.

Die Kompilierung der Standard-Exportvorlagen erfolgt durch den Aufruf von SCons aus dem Godot-Stammverzeichnis mit den folgenden Argumenten:

  • Release-Vorlage (wird beim Exportieren verwendet, wenn das Kontrollkästchen Debugging aktiviert deaktiviert ist)

scons platform=android target=template_release arch=arm32
scons platform=android target=template_release arch=arm64
cd platform/android/java
# On Windows
.\gradlew generateGodotTemplates
# On Linux and macOS
./gradlew generateGodotTemplates

Die resultierende APK befindet sich unter bin/android_release.apk.

  • Debug-Vorlage (wird beim Exportieren verwendet, wobei Debugging aktiviert ausgewählt ist)

scons platform=android target=template_debug arch=arm32
scons platform=android target=template_debug arch=arm64
cd platform/android/java
# On Windows
.\gradlew generateGodotTemplates
# On Linux and macOS
./gradlew generateGodotTemplates

Die resultierende APK befindet sich dann unter bin/android_debug.apk.

Siehe auch

Wenn Sie Vulkan-Validation Layers aktivieren möchten, lesen Sie Vulkan-Validation Layers auf Android.

Unterstützung für x86-Geräte hinzufügen

Wenn Sie auch die Unterstützung für x86- und x86-64-Geräte einschließen möchten, führen Sie den SCons-Befehl ein drittes und viertes Mal mit den Argumenten arch=x86_32 und arch=x86_64 aus, bevor Sie die APK mit Gradle erstellen. Zum Beispiel für die Release-Vorlage:

scons platform=android target=template_release arch=arm32
scons platform=android target=template_release arch=arm64
scons platform=android target=template_release arch=x86_32
scons platform=android target=template_release arch=x86_64
cd platform/android/java
# On Windows
.\gradlew generateGodotTemplates
# On Linux and macOS
./gradlew generateGodotTemplates

Dadurch wird eine große Binärdatei erstellt, die auf allen Plattformen funktioniert. Die endgültige APK-Größe der exportierten Projekte hängt von den Plattformen ab, die Sie beim Exportieren unterstützen; mit anderen Worten: nicht verwendete Plattformen werden aus der APK entfernt.

Bereinigen der generierten Exportvorlagen

Mit den folgenden Befehlen können Sie die generierten Exportvorlagen entfernen:

cd platform/android/java
# On Windows
.\gradlew clean
# On Linux and macOS
./gradlew clean

Verwenden der Exportvorlagen

Godot benötigt Release- und Debug-APKs, die mit der gleichen Version/Commit wie der Editor kompiliert wurden. Wenn Sie offizielle Binärdateien für den Editor verwenden, stellen Sie sicher, dass Sie die passenden Exportvorlagen installieren, oder erstellen Sie Ihre eigenen aus derselben Version.

Wenn Sie Ihr Spiel exportieren, öffnet Godot die APK, ändert ein paar Dinge darin und fügt Ihre Dateien hinzu.

Vorlagen installieren

Die neu kompilierten Vorlagen (android_debug.apk und android_release.apk) müssen mit ihren jeweiligen Namen in den Godot-Vorlagenordner kopiert werden. Der Ordner heißt "templates" und befindet sich in:

  • Windows: %APPDATA%\Godot\export_templates\<version>\

  • Linux: $HOME/.local/share/godot/export_templates/<version>/

  • macOS: $HOME/Library/Application Support/Godot/export_templates/<version>/

<version> hat die Form major.minor[.patch].status unter Verwendung der Werte aus version.py in Ihrem Godot Quellcode-Repository (z.B. 3.0.5.stable oder 3.1.dev). Sie müssen diesen Versions-String auch in eine Datei version.txt schreiben, die sich neben Ihren Exportvorlagen befindet.

Wenn Sie jedoch Ihre benutzerdefinierten Module oder benutzerdefinierten C++-Code schreiben, sollten Sie Ihre APKs stattdessen hier als benutzerdefinierte Exportvorlagen konfigurieren:

../../../_images/andtemplates.png

Sie brauchen sie nicht einmal zu kopieren, Sie können einfach auf die resultierende Datei im Verzeichnis bin\ Ihres Godot-Quellordners verweisen, so dass Sie beim nächsten Build automatisch auf die benutzerdefinierten Vorlagen verweisen können.

Bauen des Godot-Editors

Die Kompilierung des Editors erfolgt durch den Aufruf von SCons aus dem Godot-Stammverzeichnis mit den folgenden Argumenten:

scons platform=android arch=arm32 production=yes target=editor
scons platform=android arch=arm64 production=yes target=editor
scons platform=android arch=x86_32 production=yes target=editor
scons platform=android arch=x86_64 production=yes target=editor
cd platform/android/java
# On Windows
.\gradlew generateGodotEditor
# On Linux and macOS
./gradlew generateGodotEditor

Die resultierende APK befindet sich dann unter bin/android_editor_builds/android_editor-release.apk.

Entfernen der Editorvorlagen

Sie können die folgenden Befehle verwenden, um die generierten Editorvorlagen zu entfernen:

 cd platform/android/java
 # On Windows
.\gradlew clean
# On Linux and macOS
./gradlew clean

Installieren des Godot-Editors

Schließen Sie ein Android-Gerät mit aktivierten Entwickleroptionen über das Ladekabel an einen USB/USB-C-Anschluss an Ihren Computer an. Öffnen Sie ein Terminal/eine Eingabeaufforderung und führen Sie die folgenden Befehle aus dem Stammverzeichnis mit den folgenden Argumenten aus:

adb install ./bin/android_editor_builds/android_editor-release.apk

Fehlersuche

Die Plattform wird in SCons nicht angezeigt

Vergewissern Sie sich, dass Sie die Umgebungsvariable ANDROID_HOME gesetzt haben. Dies ist erforderlich, damit die Plattform in der Liste der erkannten Plattformen von SCons erscheint. Siehe Einrichten des Buildsystems für weitere Informationen.

Anwendung nicht installiert

Android könnte sich beschweren, dass die Anwendung nicht korrekt installiert ist. Wenn dies der Fall ist:

  • Prüfen Sie, ob der Debug-Keystore ordnungsgemäß generiert wurde.

  • Überprüfen Sie, ob die ausführbare Datei jarsigner aus JDK 8 stammt.

Wenn es immer noch fehlschlägt, öffnen Sie eine Kommandozeile und führen Sie logcat aus:

adb logcat

Prüfen Sie dann die Ausgabe, während die Anwendung installiert ist; die Fehlermeldung sollte dort angezeigt werden. Suchen Sie Hilfe, wenn Sie es selbst nicht lösen können.

Die Anwendung wird sofort beendet

Wenn die Anwendung startet, aber sofort beendet wird, kann dies einen der folgenden Gründe haben:

  • Stellen Sie sicher, dass Sie Exportvorlagen verwenden, die zu Ihrer Editorversion passen; wenn Sie eine neue Godot-Version verwenden, müssen Sie auch die Vorlagen aktualisieren.

  • libgodot_android.so befindet sich nicht in libs/<arch>/, wobei <arch> für die Architektur des Geräts steht.

  • Die Architektur des Geräts stimmt nicht mit der/den exportierten Architektur(en) überein. Vergewissern Sie sich, dass Ihre Vorlagen für die Architektur des Geräts erstellt wurden und dass die Exporteinstellungen die Unterstützung für diese Architektur enthalten.

In jedem Fall sollte adb logcat auch die Fehlerursache anzeigen.