docs: record STEP-057C Android JNI fix
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-07 13:21:14 +08:00
parent 4f76245533
commit 01295df4b8
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
# STEP-057C Android JNI 数组读取编译修正完成报告
## 结论
- 状态:IMPLEMENTED / WAITING_ANDROID_REBUILD
- 基线:`369957e9640a56f7204032e5c30ab9ad169cea01`
- 功能提交:`4f76245533817751f4e24f76e47e856c35fb23c7`
- 提交说明:`fix: correct Android JNI float array reads`
- 推送:成功,`origin/particle/main`
## 修正内容
Android x86_64 CMake 编译在 `native_map_view.cpp` 的四处 `jni::GetArrayRegion` 调用失败。参数类型为 `jni::Array<jfloat>` wrapper,当前 jni.hpp 的 5 参数 `GetArrayRegion` 只接受底层 `jarray<T>&`。
已改为 wrapper 自带的 `GetRegion()`:particle/trail 使用 `std::array<float,4>`,speeds/rgba 使用 `std::vector<float>`。仅修改 `platform/android/MapLibreAndroid/src/cpp/native_map_view.cpp`,未触碰 STEP-057B 状态机、renderer、shader、WeatherColor、timestamp 或 Core 生命周期。
## 验证
- `git diff --check`:PASS
- 已确认写法与当前 jni.hpp `Array::GetRegion()` 契约一致
- 未执行 Android Gradle、APK、ADB、设备测试或 Jest
- 下一步由用户手工重新执行 Android OpenGL Debug 构建

View File

@@ -469,3 +469,9 @@ WeatherColorLayer 的 `ParticleGpuValidationUBO` designated initializer 补齐 `
- 普通 field rejection 与 facade/runtime failure 分离:Core 保留有效 timeline 时,READY/WAITING 状态不被坏提交改成 ERROR;空 metadata/payload 同样只拒绝本次提交。
- `REJECTED_SOURCE_MODE`/`UNKNOWN` 才进入 ERROR;ERROR + enable(true) 返回 REJECTED 并保持 ERROR;READY/WAITING enable 保持幂等,DISABLED enable 成功后等待新 fields。
- 扩展 `WeatherRuntimeStateTest`,覆盖 static state transition 与 Mockito public control flow;未执行 Android Gradle、设备测试或 Jest。
## 2026-09-07 — STEP-057C Android JNI 数组读取编译修正
- Android x86_64 CMake 编译发现 `jni::Array<jfloat>` 误用底层 5 参数 `jni::GetArrayRegion`,导致 `native_map_view.cpp` 四处编译失败。
- 已改为 `jni::Array::GetRegion()`,只修正 particle/trail 与 WeatherColor stops 的数组读取,不改变业务语义或渲染生命周期。
- 功能提交:`4f76245533817751f4e24f76e47e856c35fb23c7`;Android Gradle/设备验证由用户重新执行。