Files
MapLibreParticleLab/docs/报告/STEP-057C_Android_JNI数组读取编译修正_ChatGPT完成报告_v1.md
OpenAI Codex 01295df4b8
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: record STEP-057C Android JNI fix
2026-09-07 13:21:14 +08:00

1.1 KiB
Raw Blame History

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 构建