3.2 KiB
3.2 KiB
STEP-060 RN Test Host Android 人工编译与验收
本说明只列出人工步骤;Codex 未执行 Android Gradle、发布、安装或 ADB。
- 确认当前为
particle/main,并记录git rev-parse HEAD。Gate C 封存 Linux 环境是 custom MapLibre Native AAR 的构建环境;不要为 Test Host 生成工程的版本修改它。 - 移走或清理
~/.m2/repository/org/maplibre/gl/android-sdk-opengl/13.4.1/的旧 artifact,避免同坐标 provenance 混淆。2026-08-29 旧 AAR 的 SHA-256 是5c67d2751fafe211a0df4b82deded09ab1c07cf6ca0f4a12a880283287f85e5c,只能作为 Gate C 历史证据。 - 本轮唯一坐标是
org.maplibre.gl:android-sdk-opengl:13.4.1-step060f。必须先在 Linux 手工构建并 publish 这个新 AAR,记录 build output 与 Maven Local AAR SHA-256 且两者一致;不得复用step060e或先前13.4.1artifact。 - 将该 AAR 按发布流程复制到
/mnt/nas/pbf/,Win11 用每次不同的?v=<cache-busting-value>下载,核对 SHA-256 后安装 Maven Local。 cd integration/react-native/MapLibreParticleRNTestHost && npm ci && npx expo prebuild --platform android --clean。package-lock.json已在无--legacy-peer-deps的 npm 安装下通过;不要改用 Yarn 或生成yarn.lock。本次 plugin 变更后必须 clean prebuild。- 检查生成 root Gradle 有
MapLibreParticleRNTestHost custom OpenGL SDK、nativeVersion=13.4.1-step060f、nativeVariant=opengl;MLRN 与 Bridge 两条dependencyInsight都必须解析到13.4.1-step060f。Maven Central 必须排除精确 custom moduleorg.maplibre.gl:android-sdk-opengl,使该 AAR 缺失时失败而非 fallback。 - 首次 prebuild 后实际记录 Test Host 的 Gradle wrapper、AGP、Kotlin plugin、min/compile/targetSdk、NDK、JDK、Hermes 与 New Architecture。当前观察到的
9.3.1/8.12.0/2.1.20/24/36/36/27.1.12297006属于 Test Host 生成工程,不等于 Gate C 环境。 - 再按实际生成工程编译。
app.json的 landscape 配置在本次 clean prebuild 后应使MainActivity生成android:screenOrientation="landscape";核对后以scripts/05-install-and-run.ps1安装启动。该脚本必须同时保持adb -s 192.168.1.146 reverse tcp:8091 tcp:8091与adb -s 192.168.1.146 reverse tcp:8081 tcp:8091。 - 对同一 reactTag 依次验证 Phase A:getState、enable、WeatherColor visible、particle visible、FPS 30 均得到结构化 Native result。
- 验证 Phase B:stops、独立 particle/trail RGBA、count/line/length/opacity/fade 与 WeatherColor opacity。
weather opacity必须为ACCEPTED,且不再出现ParticleGPU: event=STYLE_PROPERTY_SET result=UNSUPPORTED_PROPERTY。无 Binary Field 时 PLAY/PAUSE、HALF/NORMAL/DOUBLE 与 epoch-ms seek 仍可因TIMELINE_NOT_READY返回REJECTED;不得改变这个 fail-closed 行为,也不得出现 JSPLAYING/PAUSED第二状态机。 - 重载 style:旧 Runtime 必须 disposed;style ready attach 的新 Runtime 正常工作。remount Map 后,用旧 reactTag 调用必须返回
MAP_VIEW_NOT_FOUND,不得命中新 Map。 - 卸载 Host:确认 view detach dispose;无持续 Handler wake、无全局 current map。通过上述 Android 验收后才进入 STEP-061;此前不要尝试 number[]、JSON/base64 大 field。