Сборка 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

  1. Установите 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
  2. JDK: используйте OpenJDK 17 (Android Studio поставляет встроенный).
  3. Запомните путь к SDK (обычно C:\Users<User>\AppData\Local\Android\Sdk или ~/Android/Sdk).
  4. В Unreal Engine: File > Refresh Android SDK, затем Platforms > Android SDK — убедитесь, что все индика‑торы зелёные.
  5. Если UE не видит NDK — укажите путь вручную в Platforms > Android SDK > NDK.

Практический чек‑пойнт: после настройки SDK соберите минимальный Development APK — если он формируется, окружение готово.

Настройка проекта в Unreal Engine для телефона

  1. Основные параметры (Project Settings > Platforms > Android):
    • Minimum SDK Version: 23 (Android 6.0)
    • Target SDK Version: 34 (Android 14)
    • Support arm64: включить (обязательно); отключите устаревший armv7, если не нужен.
  2. Graphics API:
    • Vulkan как primary; OpenGL ES3 как fallback (если возникают проблемы с Vulkan).
    • Multithreaded Rendering: On для повышения FPS на слабых GPU.
  3. Packaging:
    • Для теста: Package game data inside .apk (быстрее развертывание).
    • Для Play Store: включите Package using Android App Bundle (AAB).
    • В Advanced APK Packaging: включите Generate Bundle Source Map для лучшей отладки крашей.
  4. Рендер и производительность:
    • Scalability default = Low для мобильной сборки.
    • Mobile HDR: off по умолчанию (включайте только если нужно).
    • Отключите Nanite и сложные шейдеры для мобильных целей.
  5. Ориентация экрана и прочее:
    • Выберите Portrait или Landscape в зависимости от игры.
    • Создайте конфигурацию: File > Package Project > Android > Android (ASTC) (ASTC — стандарт для большинства современных устройств).

Не публикуйте Release/Shipping сборку без правильной подписи keystore — APK/AAB не пройдет установку/публикацию.

Сборка, подпись и тестирование

  1. 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.
  2. Сборка:
    • Для теста: File > Package Project > Android > Android (ASTC) → выберите Development или Shipping.
    • Для Google Play: включите AAB и выполните Package Project > Android > Android (AAB).
  3. Установка на устройство:
    • Включите USB Debugging.
    • Подключите телефон и выполните adb install path/to/your.apk (или перетащите APK в проводник).
    • Для AAB: загрузите .aab в Play Console (внутреннее тестирование) — Google сформирует APKs.
  4. Отладка:
    • Логи: 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 и поэтапно переносите функции. Это сокращает количество неожиданных проблем и ускоряет первую рабочую сборку.