Up to date

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

Compilation pour Android

Voir aussi

Cette page décrit comment compiler les binaires du modèle d'exportation Android à partir du code source. Si vous souhaitez plutôt exporter votre projet vers Android, lisez Exportation pour Android.

Note

Dans la plupart des cas, l'utilisation des modèles de déploiement et d'exportation intégrés est suffisante. La compilation manuelle de l'APK Android est surtout utile pour les constructions personnalisées ou les paquets personnalisés pour le déployeur.

Vous devez également suivre les étapes mentionnées dans le tutoriel Exportation pour Android avant de tenter de créer un modèle d'exportation personnalisé.

Pré-requis

Pour la compilation sous Windows, Linux ou macOS, les éléments suivants sont nécessaires :

  • Python 3.6+.

  • SCons 3.0+ système de construction(build).

  • SDK Android (les outils en ligne de commande sont suffisants).

    • Les composants SDK requis seront automatiquement installés.

    • On Linux,

      do not use an Android SDK provided by your distribution's repositories as it will often be outdated.

  • Gradle (sera téléchargé et installé automatiquement s'il manque).

  • JDK 17 (either OpenJDK or Oracle JDK).

Voir aussi

Pour récupérer le code source de Godot pour le compiler, voir Obtenir la source.

Pour un aperçu général de l'utilisation de SCons pour Godot, voir Introduction au buildsystem.

Mise en place du système de construction(build)

  • Set the environment variable ANDROID_HOME to point to the Android SDK. If you downloaded the Android command-line tools, this would be the folder where you extracted the contents of the ZIP archive.

  • Installez les composants SDK nécessaires dans ce dossier :

    • Acceptez les licences des composants SDK en exécutant la commande suivante où android_sdk_path est le chemin vers le SDK Android, puis répondez à toutes les questions par y :

    cmdline-tools/latest/bin/sdkmanager --sdk_root=<android_sdk_path> --licenses
    
    • Terminez l'installation en exécutant la commande suivante où android_sdk_path est le chemin vers le SDK Android.

    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"
    

Voir aussi

Pour définir ces variables d'environnement sous Windows, appuyez sur Windows + R, tapez "control system", puis cliquez sur Advanced system settings dans le panneau de gauche, puis cliquez sur Environment variables dans la fenêtre qui apparaît.

Voir aussi

To set the environment variable on Linux or macOS, use export ANDROID_HOME=/path/to/android-sdk where /path/to/android-sdk points to the root of the SDK directories.

Construction(Building) des modèles d'exportation

Godot a besoin de deux modèles d'exportation pour Android : le modèle "release" optimisé (android_release.apk) et le modèle debug (android_debug.apk). Comme Google exigera que tous les APKs incluent les bibliothèques ARMv8 (64 bits) à partir d'août 2019, les commandes ci-dessous permettront de construire un APK contenant à la fois les bibliothèques ARMv7 et ARMv8.

La compilation des modèles d'exportation standard se fait en appelant SCons depuis le répertoire racine de Godot avec les arguments suivants :

  • Modèle de release (utilisé lors de l'exportation avec Debugging Enabled non coché)

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

L'APK qui en résultera se trouvera à bin/android_release.apk.

  • Modèle de débogage (utilisé lors de l'exportation avec Débogage activé coché)

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

L'APK qui en résultera se trouvera à bin/android_debug.apk.

Voir aussi

If you want to enable Vulkan validation layers, see Vulkan validation layers on Android.

Ajout de la prise en charge des appareils x86

If you also want to include support for x86 and x86-64 devices, run the SCons command a third and fourth time with the arch=x86_32, and arch=x86_64 arguments before building the APK with Gradle. For example, for the release template:

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

Cela permettra de créer un gros binaire qui fonctionne sur toutes les plateformes. La taille finale de l'APK des projets exportés dépendra des plates-formes que vous choisirez de prendre en charge lors de l'exportation ; en d'autres termes, les plates-formes inutilisées seront supprimées de l'APK.

Nettoyage des modèles d'exportation générés

Vous pouvez utiliser les commandes suivantes pour supprimer les modèles d'exportation générés :

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

Utilisation des modèles d'exportation

Godot a besoin des APK release and debug qui ont été compilés avec la même version/commit que l'éditeur. Si vous utilisez des binaires officiels pour l'éditeur, assurez-vous d'installer les modèles d'exportation correspondants, ou construisez le vôtre à partir de la même version.

Lors de l'exportation de votre jeu, Godot ouvre l'APK, modifie quelques éléments à l'intérieur et ajoute vos fichiers.

Installation des modèles

Les modèles nouvellement compilés (android_debug.apk et android_release.apk) doivent être copiés dans le dossier des modèles de Godot avec leurs noms respectifs. Le dossier modèles peut être situé dans :

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

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

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

<version> est de la forme major.minor[.patch].status en utilisant les valeurs de version.py dans votre dépôt de sources Godot (par exemple 3.0.5.stable ou 3.1.dev). Vous devez également écrire cette même chaîne de cractère de version dans un fichier version.txt situé à côté de vos modèles d'exportation.

Toutefois, si vous écrivez vos modules personnalisés ou du code C++ personnalisé, vous pouvez configurer vos APK comme modèles d'exportation personnalisés ici :

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

Vous n'avez même pas besoin de les copier, vous pouvez simplement référencer le fichier résultant dans le répertoire bin\ de votre dossier source Godot, de sorte que la prochaine fois que vous construirez, vous aurez automatiquement les modèles personnalisés référencés.

Building the Godot editor

Compiling the editor is done by calling SCons from the Godot root directory with the following arguments:

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

The resulting APK will be located at bin/android_editor_builds/android_editor-release.apk.

Removing the Editor templates

You can use the following commands to remove the generated editor templates:

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

Installing the Godot editor

With an Android device with Developer Options enabled, connect the Android device to your computer via its charging cable to a USB/USB-C port. Open up a Terminal/Command Prompt and run the following commands from the root directory with the following arguments:

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

Dépannage

La plate-forme n'apparaît pas dans SCons

Double-check that you've set the ANDROID_HOME environment variable. This is required for the platform to appear in SCons' list of detected platforms. See Setting up the buildsystem for more information.

Application non installée

Android pourrait se plaindre que l'application n'est pas correctement installée. Si c'est le cas :

  • Vérifiez que la keystore de débogage est correctement générée.

  • Vérifiez que l'exécutable jarsigner provient du JDK 8.

S'il échoue encore, ouvrez une ligne de commande et lancez logcat :

adb logcat

Vérifiez alors la sortie pendant que l'application est installée ; le message d'erreur devrait être présenté là. Demander assistance si vous n'arrivez pas à vous en sortir.

L'application se ferme immédiatement

Si l'application s'exécute mais se ferme immédiatement, cela peut être due à l'une des raisons suivantes :

  • Assurez-vous d'utiliser des modèles d'exportation correspondant à la version de votre éditeur ; si vous utilisez une nouvelle version de Godot, vous devez mettre à jour tous les modèles.

  • libgodot_android.so is not in libs/<arch>/ where <arch> is the device's architecture.

  • L'architecture de l'appareil ne correspond pas à celle exportée. Assurez-vous que vos modèles ont été créés pour l'architecture de cet appareil et que les paramètres d'exportation incluent la prise en charge de cette architecture.

Dans tous les cas, adb logcat devrait également indiquer la cause de l'erreur.