Android Studio: проект и нативная отладка
Модули платформы, варианты сборки, SCons, JNI и соответствие символов.
Что открывать
Android Studio здесь используется для Java/Kotlin-оболочки, JNI и нативного C++ движка. Для C#-кода игры нужен отдельный .NET-процесс сборки/отладки; Dual (Java + Native) не подключает C# debugger.
Откройте каталог Source/platform/android/java, содержащий settings.gradle. Это проект платформы движка, не android/build конкретной экспортированной игры. До Sync подготовьте SDK/NDK и инструменты из сборки Android. IDE должна видеть те же ANDROID_HOME, Java и scons, что терминал. Не принимайте предложение обновить AGP/Gradle без проверки совместимости с текущими build-файлами.
Модули и варианты
| Модуль | Назначение |
|---|---|
:lib | Java/JNI-оболочка и нативные библиотеки движка, упаковка AAR. |
:editor | Android-редактор и варианты Android/XR; зависит от библиотеки. |
:app | Приложение-шаблон для запуска игры; ему нужны игровые ресурсы. |
:assetPackInstallTime, :dataLib, :fusedDepsLib | Вспомогательные модули упаковки приложения. |
:nativeSrcsConfigs, :editor:macrobenchmark | Конфигурация native sources и отдельные измерения редактора. |
Наличие Maven-настроек в исходниках не означает, что нужный Reckfell AAR опубликован и доступен в Maven Central. Для локальной работы используйте согласованные артефакты этой сборки.
Для отладки редактора выберите run configuration модуля editor, Android-вариант Debug и ABI устройства. Для app нужен Debug-вариант шаблона и экспортированные игровые данные. Пустой app/src/main/assets не становится полноценной игрой от успешного Gradle Sync. Сначала получите корректный экспорт; простое копирование исходных файлов не заменяет импорт ресурсов и C# publish.
Корневой Gradle-проект по умолчанию задаёт selectedAbis=["arm64"]. Для эмулятора x86_64 нужен соответствующий ABI в native-сборке и пакете. Android Studio-задачи могут запускать SCons автоматически; Sync не доказывает готовность компилятора. Обычная CLI-упаковка, наоборот, по умолчанию исключает SCons-задачи и использует существующие .so.
Подключите нативные символы
- Соберите подходящий Debug-вариант с символами; не используйте
.soот другого commit, ABI или target. - В Run/Debug Configuration выберите Native Only либо Dual (Java + Native), если нужно одновременно пройти Java→JNI→C++. Установите LLDB средствами Android Studio. Настройки отладчика.
- Для внешних символов добавьте Symbol Directories. Native-библиотеки редактора находятся под
platform/android/java/lib/libs/tools/debug/<ABI>, шаблона — подplatform/android/java/lib/libs/debug/<ABI>. Пути даны относительноSource; если символы отделены, укажите каталог соответствующих неурезанных/символьных файлов. - Запустите Debug на выбранном устройстве и проверьте остановку сначала в Java/JNI, затем в нужном C++-методе. Само подключение LLDB не подтверждает соответствие символов. Отладка Android-приложения.
В Android Studio текущий Gradle-код сохраняет debug symbols при упаковке, но символы уже stripped-библиотеки из этого не восстанавливаются. Нативный breakpoint, остающийся непривязанным, требует проверки загруженного модуля, ABI, build ID и source mapping.
Разберите ошибку по стадии
| Ошибка | Следующий шаг |
|---|---|
| Gradle Sync/JDK | Сверьте wrapper, AGP, Gradle JDK и версии SDK из build-файлов. |
Unable to find executable path for the 'scons' command | Исправьте PATH именно процесса Android Studio и перезапустите IDE. |
| SCons завершился с ошибкой | Откройте полный native build log; успешная индексация IDE ничего не говорит о компиляции. |
app открывается без игры | Проверьте свежие экспортированные ресурсы, главный уровень и managed publish, а не только APK оболочки. |
| LLDB не видит строк | Проверьте точную библиотеку/ABI/символы; не добавляйте случайный каталог другой сборки. |
Не начинайте с очистки всего проекта: Gradle clean в этом репозитории удаляет и некоторые результаты SCons. Сохраните нужные библиотеки и символы перед намеренной очисткой.
Граница проверки: структура модулей, ABI, SCons tasks, JNI-пути и правила символов сверены по исходникам. Элементы отладчика сверены с официальной документацией Android Studio. IDE, Sync, компиляция, установка APK и LLDB на устройстве здесь не запускались; это не отчёт об успешной отладочной сессии.