Компиляция для Android
См. также
Эта страница описывает, как скомпилировать "шаблон экспорта" Android из исходных файлов. Если вы хотите экспортировать свой проект в Android, читайте Экспортирование для ОС Android.
Примечание
В большинстве случаев достаточно использовать встроенный шаблоны экспорта. Компиляция Android APK вручную полезна в основном для пользовательских сборок.
Кроме того, перед тем как приступить к созданию шаблона экспорта, необходимо выполнить шаги, описанные в руководстве Экспортирование для ОС Android.
Требования
Для компиляции на системах Windows, Linux или macOS необходимо следующее:
SCons 4.0+ система сборки.
Android SDK
To install the Android SDK, follow the steps here <https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_android.html>_.
В Linux не используйте Android SDK, предоставленный в репозиториях вашего дистрибутива, так как он часто устаревает.
На macOS не используйте Android SDK, предоставленный Homebrew, так как он не будет установлен в едином месте.
Gradle (будет загружен и установлен автоматически, если отсутствует).
JDK 17 (либо OpenJDK, либо Oracle JDK).
You can download a build from Adoptium.
См. также
Чтобы получить исходный код Godot для компиляции, см. Получение исходного кода.
Для общего обзора использования SCons в Godot, смотрите Введение в систему сборки.
Настройка билда
Установите переменную окружения
ANDROID_HOMEтак, чтобы она указывала на Android SDK. Если вы скачали инструменты командной строки Android, это будет папка, в которую вы извлекли содержимое ZIP-архива.Windows: Нажмите Windows + R, введите "control system", затем нажмите Advanced system settings (Дополнительные параметры системы) на левой панели, затем нажмите Environment variables (Переменные среды) в появившемся окне.
Linux или macOS: Добавьте текст
export ANDROID_HOME="/path/to/android-sdk"в файл.bashrcили.zshrc, где/path/to/android-sdkуказывает на корень каталогов SDK.
После настройки SDK и переменных окружения обязательно перезапустите терминал, чтобы изменения вступили в силу. Если вы используете IDE со встроенным терминалом, перезапустите IDE.
Выполните команду
scons platform=android. Если это не поможет, вернитесь назад и проверьте шаги. Если настройка выполнена правильно, начнётся загрузка NDK. Если вы пытаетесь скомпилировать GDExtension, сначала необходимо скомпилировать движок для загрузки NDK, а затем можно скомпилировать GDExtension.
Создание шаблонов экспорта
Godot требуются три шаблона экспорта для Android: оптимизированный шаблон "релиза" (android_release.apk), шаблон отладки (android_debug.apk) и шаблон сборки Gradle (android_source.zip). Поскольку с августа 2019 года Google требует, чтобы все APK-файлы включали библиотеки ARMv8 (64-разрядные), команды ниже собирают шаблоны, содержащие библиотеки как ARMv7, так и ARMv8.
Компиляция стандартных шаблонов экспорта выполняется путем вызова SCons из корневого каталога Godot со следующими аргументами:
Release template (используется при экспорте с отключенным параметром Debugging Enabled (Отладка включена))
scons platform=android target=template_release arch=arm32
scons platform=android target=template_release arch=arm64 generate_android_binaries=yes
Debug template (используется при экспорте с установленным флажком Debugging Enabled (Отладка включена))
scons platform=android target=template_debug arch=arm32
scons platform=android target=template_debug arch=arm64 generate_android_binaries=yes
(Необязательно) Dev template (используется при устранении неполадок)
scons platform=android target=template_debug arch=arm32 dev_build=yes
scons platform=android target=template_debug arch=arm64 dev_build=yes generate_android_binaries=yes
Полученные шаблоны будут расположены в каталоге bin:
bin/android_release.apkдля шаблона релизаbin/android_debug.apkдля шаблона отладкиbin/android_dev.apkдля шаблона devbin/android_source.zipдля шаблона сборки Gradle
Примечание
Если вы изменяете список собираемых архитектур, не забудьте добавить
generate_android_binaries=yesк последней собираемой архитектуре, чтобы файлы шаблонов были сгенерированы после сборки.Чтобы включить отладочные символы в сгенерированные шаблоны, добавьте параметры
debug_symbols=yesк команде SCons.Обратите внимание, что вы можете включить
separate_debug_symbols=yesдля генерации отладочных символов в отдельном файле*-native-debug-symbols.zip.
См. также
Если вам нужно включить слои валидации (validation layers) Vulkan, см Vulkan validation layers on Android.
Добавление поддержки систем x86
Если вы также хотите включить поддержку устройств x86 и x86_64, выполните команду SCons третий и четвёртый раз с аргументами arch=x86_32 и arch=x86_64 перед сборкой APK с помощью Gradle. Например, для шаблона релиза:
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 generate_android_binaries=yes
Это создаст шаблоны исполняемых файлов, работающие на всех платформах. Окончательный размер исполняемого файла экспортируемых проектов будет зависеть от выбранных вами платформ; другими словами, неиспользуемые платформы будут удалены из исполняемого файла.
Очистка созданных шаблонов экспорта
Для удаления созданных шаблонов экспорта можно использовать следующие команды:
cd platform/android/java
# On Windows
.\gradlew clean
# On Linux and macOS
./gradlew clean
Использование шаблонов экспорта
Godot требует релизных и отладочных исполняемых файлов, скомпилированных с той же версией/коммитом, что и редактор. Если вы используете официальные исполняемые файлы для редактора, убедитесь, что установлены соответствующие шаблоны экспорта или собраны собственные на основе той же версии.
При экспорте игры Godot использует шаблоны в качестве основы и обновляет их содержимое по мере необходимости.
Установка шаблонов
Скомпилированные шаблоны (android_debug.apk, android_release.apk и android_source.zip) необходимо скопировать в папку шаблонов Godot, указав их соответствующие имена. Папка шаблонов может находиться по адресу:
Windows:
%APPDATA%\Godot\export_templates\<version>\Linux:
$HOME/.local/share/godot/export_templates/<version>/macOS:
$HOME/Library/Application Support/Godot/export_templates/<version>/
<version> имеет вид major.minor[.patch].status, используя значения из version.py в вашем исходном репозитории Godot (например, 4.1.3.stable или 4.2.dev). Вам также необходимо записать эту же строку версии в файл version.txt, расположенный рядом с шаблонами экспорта.
Однако, если вы пишете собственные модули или код на C++, вам может потребоваться настроить исполняемые файлы шаблонов как пользовательские шаблоны экспорта в меню экспорта проекта. Для этого необходимо включить Advanced Options (Дополнительные параметры).
Вам даже не нужно их копировать, вы можете просто сослаться на полученный файл в каталоге bin\ исходной папки Godot, чтобы при следующей сборке вы автоматически ссылались на пользовательские шаблоны.
Создание редактора Godot
Компиляция редактора выполняется путем вызова SCons из корневого каталога Godot со следующими аргументами:
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 generate_android_binaries=yes
Вы можете добавить параметр
dev_build=yesдля создания dev-сборки редактора Godot.Вы можете добавить параметры
debug_symbols=yes, чтобы включить отладочные символы в сгенерированную сборку.Note that you can include
separate_debug_symbols=yesto the last architecture you're building, to generate the debug symbols in a separate*-native-debug-symbols.zipfile.
Вы можете пропустить определенные архитектуры в зависимости от целевого устройства, чтобы ускорить компиляцию.
Не забудьте добавить generate_android_binaries=yes к последней архитектуре, которую вы собираете, чтобы двоичные файлы генерировались после сборки.
Полученные двоичные файлы будут расположены в папке bin/android_editor_builds/.
Удаление двоичных файлов Редактора
Для удаления сгенерированных двоичных файлов редактора можно использовать следующие команды:
cd platform/android/java
# On Windows
.\gradlew clean
# On Linux and macOS
./gradlew clean
Установка APK-файла редактора Godot
Если на устройстве Android включены параметры разработчика, подключите его к компьютеру через кабель для зарядки через порт USB/USB-C. Откройте Терминал/Командную строку и выполните следующие команды из корневого каталога со следующими аргументами:
adb install ./bin/android_editor_builds/android_editor-android-debug.apk
Устранение неполадок
Платформа не отображается в SCons
Дважды проверьте, установлена ли переменная окружения ANDROID_HOME. Это необходимо для того, чтобы платформа появилась в списке обнаруженных платформ SCons. Подробнее см. в разделе Настройка системы сборки.
Приложение не установлено
Android может сообщать, что приложение установлено неправильно. В этом случае:
Проверьте правильность создания хранилища ключей отладки.
Проверьте, что исполняемый файл jarsigner принадлежит JDK 8.
Если проблема не устранена, откройте командную строку и запустите logcat:
adb logcat
Затем проверьте вывод при установке приложения; там должно быть сообщение об ошибке. Обратитесь за помощью, если не можете разобраться.
Приложение немедленно завершает работу
Если приложение запускается, но сразу же завершает работу, это может быть вызвано одной из следующих причин:
Обязательно используйте шаблоны экспорта, соответствующие версии вашего редактора. Если вы используете новую версию Godot, вам придется обновить и шаблоны.
libgodot_android.soотсутствует вlibs/<arch>/, где<arch>— архитектура устройства.Архитектура устройства не соответствует экспортированной. Убедитесь, что ваши шаблоны созданы для архитектуры этого устройства и что настройки экспорта включают её поддержку.
В любом случае adb logcat также должен показать причину ошибки.