Сборка APK/AAB в Unreal Engine для Android: быстрый чек‑лист
Короткий ответ: установите Android Studio (SDK + NDK), укажите OpenJDK 17, в Project Settings задайте Minimum SDK 23 и Target SDK 34, включите arm64, настройте Packaging (APK или AAB), подпишите keystore и выполните File > Package Project > Android > Android (APK/AAB).
Сохраните проект перед изменениями SDK/NDK — UE иногда падает при первом скане SDK.
Оглавление {{TOC_AUTOMATIC}}
Подготовка окружения и Android SDK/NDK
- Установите Android Studio (Giraffe или новее). Через SDK Manager:
- Android SDK Build-Tools 34.0.0
- Android SDK Platform-Tools
- Android SDK Tools
- NDK (Side by side) — рекомендовано 25c или 26b
- JDK: используйте OpenJDK 17 (Android Studio поставляет встроенный).
- Запомните путь к SDK (обычно C:\Users<User>\AppData\Local\Android\Sdk или ~/Android/Sdk).
- В Unreal Engine: File > Refresh Android SDK, затем Platforms > Android SDK — убедитесь, что все индика‑торы зелёные.
- Если UE не видит NDK — укажите путь вручную в Platforms > Android SDK > NDK.
Практический чек‑пойнт: после настройки SDK соберите минимальный Development APK — если он формируется, окружение готово.
Настройка проекта в Unreal Engine для телефона
- Основные параметры (Project Settings > Platforms > Android):
- Minimum SDK Version: 23 (Android 6.0)
- Target SDK Version: 34 (Android 14)
- Support arm64: включить (обязательно); отключите устаревший armv7, если не нужен.
- Graphics API:
- Vulkan как primary; OpenGL ES3 как fallback (если возникают проблемы с Vulkan).
- Multithreaded Rendering: On для повышения FPS на слабых GPU.
- Packaging:
- Для теста: Package game data inside .apk (быстрее развертывание).
- Для Play Store: включите Package using Android App Bundle (AAB).
- В Advanced APK Packaging: включите Generate Bundle Source Map для лучшей отладки крашей.
- Рендер и производительность:
- Scalability default = Low для мобильной сборки.
- Mobile HDR: off по умолчанию (включайте только если нужно).
- Отключите Nanite и сложные шейдеры для мобильных целей.
- Ориентация экрана и прочее:
- Выберите Portrait или Landscape в зависимости от игры.
- Создайте конфигурацию: File > Package Project > Android > Android (ASTC) (ASTC — стандарт для большинства современных устройств).
Не публикуйте Release/Shipping сборку без правильной подписи keystore — APK/AAB не пройдет установку/публикацию.
Сборка, подпись и тестирование
- Keystore:
- Сгенерируйте keystore через Android Studio > Build > Generate Signed Bundle или командой: keytool -genkey -v -keystore my-release-key.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000
- В UE: укажите Keystore Path, Keystore Password, Key Alias, Key Password в Project Settings > Platforms > Android > Distribution Signing.
- Сборка:
- Для теста: File > Package Project > Android > Android (ASTC) → выберите Development или Shipping.
- Для Google Play: включите AAB и выполните Package Project > Android > Android (AAB).
- Установка на устройство:
- Включите USB Debugging.
- Подключите телефон и выполните adb install path/to/your.apk (или перетащите APK в проводник).
- Для AAB: загрузите .aab в Play Console (внутреннее тестирование) — Google сформирует APKs.
- Отладка:
- Логи: adb logcat + Output Log в UE.
- Включите Capture GPU crashes (Project Settings) при проблемах с рендером.
- Для черного экрана попробуйте переключить Graphics API на OpenGL, проверьте разрешение и launch activity.
Частые ошибки
- "NDK not found" — проверьте путь в UE и установите NDK Side by side нужной версии.
- APK не устанавливается — скорее всего неподписан или несовместимая ABI (отсутствует arm64).
- Краш при запуске — смотрите adb logcat; часто виноват ассет с неподдерживаемым форматом или Shader Model.
- Черный экран на старых девайсах с Vulkan — переключитесь на OpenGL ES3.
- Ошибки при публикации — неверный Keystore/alias или отсутствие Signature Scheme v2/v3 (в настройках подписи включите современные схемы).
FAQ
- Чем отличается APK от AAB?
- APK — пакет приложения; AAB — бандл для Play Store, из которого Google генерирует оптимизированные APKs для устройств (рекомендуется для публикации).
- Какие NDK версии подходят?
- 25c и 26b — проверенные; главное — указать ту же версию в UE.
- Как быстро протестировать на реальном устройстве без USB?
- Включите adb over TCP: adb tcpip 5555, затем adb connect <device_ip>:5555.
- Как собрать с Google Play Services?
- Подключите плагин OnlineSubsystemGooglePlay и настройте необходимые метаданные в AndroidManifest и Gradle (через плагины/пакеты UE).
Если проект большой — начните с шаблона Third Person Mobile и поэтапно переносите функции. Это сокращает количество неожиданных проблем и ускоряет первую рабочую сборку.