Compilation pour Android¶
Voir aussi
This page describes how to compile Android export template binaries from source. If you're looking to export your project to Android instead, read Exportation vers 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 vers 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 :
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.
Sous Linux, n'utilisez pas un SDK Android fourni par les dépôts de votre distribution car il est souvent obsolète.
Gradle (sera téléchargé et installé automatiquement s'il manque).
JDK 11 (soit OpenJDK ou Oracle JDK).
Vous pouvez télécharger un build à partir de ojdkbuild.
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)¶
Définissez la variable d'environnement
ANDROID_SDK_ROOT
pour qu'elle pointe vers le SDK Android. Si vous avez téléchargé les outils de ligne de commande Android, il s'agit du dossier dans lequel vous avez extrait le contenu de l'archive ZIP.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 pary
:
tools/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.
tools/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
Pour définir la variable d'environnement sous Linux ou macOS, utilisez export ANDROID_SDK_ROOT=/path/to/android-sdk
où /path/to/android-sdk
pointe vers la racine des répertoires du SDK.
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=release android_arch=armv7
scons platform=android target=release android_arch=arm64v8
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=release_debug android_arch=armv7
scons platform=android target=release_debug android_arch=arm64v8
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
.
Ajout de la prise en charge des appareils x86¶
Si vous voulez également inclure le support des appareils x86 et x86-64, lancez la commande SCons une troisième et une quatrième fois avec les arguments android_arch=x86
, et android_arch=x86_64
avant de construire l'APK avec Gradle. Par exemple, pour le modèle de version :
scons platform=android target=release android_arch=armv7
scons platform=android target=release android_arch=arm64v8
scons platform=android target=release android_arch=x86
scons platform=android target=release android_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 cleanGodotTemplates
# On Linux and macOS
./gradlew cleanGodotTemplates
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 :
C:\Users\[username]\AppData\Roaming\Godot\templates\<version>\
Linux :
$HOME/.local/share/godot/templates/<version>/
macOS :
$HOME/Library/Application Support/Godot/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 :

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.
Dépannage¶
La plate-forme n'apparaît pas dans SCons¶
Vérifiez que vous avez défini la variable d'environnement ANDROID_SDK_ROOT
. Ceci est nécessaire pour que la plateforme apparaisse dans la liste des plateformes détectées de SCons. Voir Configurer le système de construction pour plus d'informations.
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
n'est pas danslibs/<android_arch>/
où<android_arch>
est l'architecture de l'appareil.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.