diff --git a/docs/报告/STEP-057C_Android_JNI数组读取编译修正_ChatGPT完成报告_v1.md b/docs/报告/STEP-057C_Android_JNI数组读取编译修正_ChatGPT完成报告_v1.md new file mode 100644 index 000000000..4752962d6 --- /dev/null +++ b/docs/报告/STEP-057C_Android_JNI数组读取编译修正_ChatGPT完成报告_v1.md @@ -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` wrapper,当前 jni.hpp 的 5 参数 `GetArrayRegion` 只接受底层 `jarray&`。 + +已改为 wrapper 自带的 `GetRegion()`:particle/trail 使用 `std::array`,speeds/rgba 使用 `std::vector`。仅修改 `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 构建 diff --git a/粒子开发记录.md b/粒子开发记录.md index 597e2d8fe..7b35fb72a 100644 --- a/粒子开发记录.md +++ b/粒子开发记录.md @@ -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` 误用底层 5 参数 `jni::GetArrayRegion`,导致 `native_map_view.cpp` 四处编译失败。 +- 已改为 `jni::Array::GetRegion()`,只修正 particle/trail 与 WeatherColor stops 的数组读取,不改变业务语义或渲染生命周期。 +- 功能提交:`4f76245533817751f4e24f76e47e856c35fb23c7`;Android Gradle/设备验证由用户重新执行。