This commit is contained in:
1 parent
15a968a2f7
commit
b52921e171
38 files changed
+564
-2956
No files matched your search
+13
-33
@@ -1,45 +1,25 @@
|
||||
# Разбор результатов
|
||||
# Troubleshooting
|
||||
|
||||
## Не запускается Docker или нет места/доступа в сеть
|
||||
The authoritative finalized transaction is `out/current/build.json`. On `PASS`, use `out/current/package.json` and `out/current/kam-mobile.apk`. On `FAIL` or `BLOCKED`, read that metadata and the matching transient logs: `build/<build_id>/logs/compile.log`, `build/<build_id>/logs/package.log`, and `build/<build_id>/logs/signature.log` when apksigner was available and invoked.
|
||||
|
||||
Это проблема окружения, не аргумент против FPC/Castle. Смотрите bootstrap report и `docker-pull.log`. Не запускайте скрипт через `sudo` автоматически: сначала настройте доступ к Docker и права на папку проекта. Образ содержит инструменты для многих целей; его размер не равен размеру нашего исходного ZIP.
|
||||
## Docker, toolchain, or network unavailable
|
||||
|
||||
## `platform` не собрался
|
||||
Check Docker access, free space, network access, and write permission to the repository before rerunning. Do not use `sudo` as an automatic workaround. With `--local`, verify that the installed Castle, FPC, Java, Android SDK/NDK, and Android cross-compiler agree.
|
||||
|
||||
Сначала смотреть `platform/compile-link.log`, `toolchain.json` и `platform/CastleEngineManifest.xml`. Это самостоятельная CGE/FPC проба без KaM. Причиной может быть версия API CGE, Android cross-compiler, NDK/linker либо ошибка кода самого стенда. Не приписывайте её KaM. Остальные пробы всё равно запускаются для сбора диагностик.
|
||||
## Missing Pascal unit, include, package, resource, or native object
|
||||
|
||||
## `Can't find unit Graphics / Forms / LCL...`
|
||||
Follow the active dependency chain in `compile.log`. Desktop LCL units, generated includes, or native objects may need their upstream Android-compatible build input; do not add empty replacements. Source ownership remains the pinned `vendor/kam_remake` receipt plus RP01's registered adaptation/resolution owners, `config/extra-paths.json` and `tools/source_resolution.py`.
|
||||
|
||||
Стенд не добавляет desktop LCL в Android автоматически и не создаёт пустую замену. Лексический `source-inventory.json` помогает найти места зависимости, но смотреть нужно активную цепочку в compile log. У нескольких проб может быть один общий блокер. Не считать каждый упавший профиль отдельной переписываемой системой.
|
||||
## Native link failure or undefined symbol
|
||||
|
||||
## Отсутствующий `.res`, generated include или native object
|
||||
Use `compile.log` to identify the first missing native dependency and confirm it has the selected Android ABI. A desktop library or a same-named stub is not a valid fix.
|
||||
|
||||
Загрузчик намеренно выбирает только исходный текст, а не скомпилированные Windows-ресурсы/объекты. Такая ошибка может означать, что ресурс нужно штатно генерировать для Android или отделить платформенный модуль, а не что игровой формат несовместим. Запишите запросивший файл и найдите соответствующий upstream build step. Стенд не подменяет необходимый вход пустым файлом.
|
||||
## APK or native-library integrity failure
|
||||
|
||||
## `No fresh Pascal unit artifact`
|
||||
Use `package.log` to inspect the packaged APK, ABI, and native-library findings. When present, `signature.log` records apksigner inspection. Do not substitute an older APK: only the current finalized package metadata identifies the current package.
|
||||
|
||||
Компилятор завершился, но стенд не нашёл ожидаемый `.ppu` внутри свежего проекта. Нельзя без проверки просто ослабить это условие: сначала установить, куда текущий CGE положил units, действительно ли собран именно исходный корень и не использован чужой cache. В `target.json` есть список источников и options. Это диагностическая проверка стенда, не обязательное свидетельство ошибки core.
|
||||
## Modified or unrecorded source
|
||||
|
||||
## Undefined symbols / native `.so` отсутствует в APK
|
||||
The pinned vendor receipt/source verification detects changed or unrecorded source. Do not edit `vendor/kam_remake` to obtain a clean result; make project-owned adaptations through the registered RP01 path instead.
|
||||
|
||||
Проверка линковки специально строгая. Посмотреть библиотеку и ABI, транзитивные native зависимости и имеющийся вариант для Android. `extra-paths.json` позволяет явно добавить пути к проверенной библиотеке/исходникам. Не добавлять Windows DLL, desktop `.so` или заглушку с тем же именем unit. Настроить library search path недостаточно, если библиотека ещё должна отдельно упаковываться в APK: отчёт `DT_NEEDED` это обнаружит.
|
||||
|
||||
## APK слинкован, но упаковка отказала из-за native identity
|
||||
|
||||
Сравнение разрешает удаление неисполняемой debug-информации, но требует совпадения allocated sections и program headers. Другие изменения упаковщика требуют отдельного исследования. Не принимать произвольный `.apk` из старого `dist/` за новый. При нескольких разных APK outputs стенд консервативно отказывается выбирать случайный; изучите свежий target, прежде чем менять правило отбора.
|
||||
|
||||
## Source modified / Unrecorded binary
|
||||
|
||||
Baseline под `vendor/kam_remake/` проверяется по receipt до и после сборки. Не редактируйте его для получения «неизменённого upstream PASS». Для исследования адаптации нужна отдельная явно обозначенная копия/patch-ветка и запись разницы; текущий стенд проверяет as-is baseline. Повторная загрузка не затирает ваши изменения молча.
|
||||
|
||||
## Код возврата 2 после platform-only
|
||||
|
||||
Это ожидаемый `PARTIAL_SELECTION`. Смотрите индивидуальные статусы. Успешный platform-only запуск специально не делает глобальный architecture gate зелёным.
|
||||
|
||||
## APK запускается и сразу закрывается
|
||||
|
||||
Это может быть ошибка native loader, unit initialization или попытка штатного кода обратиться к данным до старта UI. `runtime.json` при раннем падении может не создаться. Сохраните журнал Android для этого package и библиотек. Device tool не засчитывает отсутствие отчёта за успех. Для полного crash stack может потребоваться отдельное чтение native crash log на устройстве.
|
||||
|
||||
## Что передавать для следующего разбора
|
||||
|
||||
`reports/runs/<build-id>/evidence.zip` содержит версии инструментов, source hashes, manifests, generated imports, compile/package logs и result. В нём нет игровых файлов, APK и полного upstream дерева. По нему можно выделить первый общий блокер. Для runtime дополнительно нужны файлы конкретного `reports/device/<timestamp>/`; сначала проверьте, нет ли в журналах нежелательных личных путей/данных.
|
||||
`reports/**` and `dist/**` are frozen Task-1 historical evidence, not inputs to current diagnosis.
|
||||
Reference in new issue
Block a user