HarmonyOS鸿蒙Next中react-native-amap3d": "3.2.6-rc.2" 在 homs6.01(21)中报错

HarmonyOS鸿蒙Next中react-native-amap3d": “3.2.6-rc.2” 在 homs6.01(21)中报错

"@rnoh/react-native-openharmony": "0.72.101-5",
"@react-native-ohos/react-native-amap3d": "3.2.6-rc.2",

cke_852.png

有懂的大牛解答下吗


更多关于HarmonyOS鸿蒙Next中react-native-amap3d": "3.2.6-rc.2" 在 homs6.01(21)中报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者您好,想跟您确认下几个问题,您方便的话,麻烦您提供下以下信息:

  1. 在API21之前的手机系统版本是否可以正常使用@react-native-ohos/react-native-amap3d。
  2. 使用@react-native-ohos/react-native-amap3d 有没有按照三方库引入步骤进行引入,三方库引入指导可参考文档:react-native-amap3d.md
  3. 如果以上两种方式都是正常的,请将@react-native-ohos/react-native-amap3d升级到最新版本3.2.6-rc.3,进行验证。npm官网:[@react-native-ohos/react-native-amap3d](https://www.npmjs.com/package/@react-native-ohos/react-native-amap3d?activeTab=versions)。

更多关于HarmonyOS鸿蒙Next中react-native-amap3d": "3.2.6-rc.2" 在 homs6.01(21)中报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


算了解决不了,用的react-native-maps 跟高德一个坐标系

在HarmonyOS Next中,react-native-amap3d 3.2.6-rc.2版本与HOMS 6.01(21)存在兼容性问题。该库主要依赖原生Android/iOS平台接口,而鸿蒙Next已移除传统AOSP代码,导致其无法直接运行。目前缺乏针对ArkTS/Stage模型的适配版本,因此会引发运行时错误。

根据您提供的截图和依赖版本信息,问题很可能出在 @react-native-ohos/react-native-amap3d 这个库与您当前HarmonyOS Next SDK(API 6)的兼容性上。

错误信息 Cannot read property 'getContext' of undefined 表明在初始化地图时,底层引擎未能正确获取到绘图上下文。这通常由以下原因导致:

  1. 库版本与SDK不匹配react-native-amap3d3.2.6-rc.2 版本可能尚未完全适配 HarmonyOS Next API 6 的底层图形接口变更。API 6 对图形子系统有较大更新,旧版库可能使用了已废弃或修改的API。

  2. ArkTS/NAPI 上下文传递问题:该库的HarmonyOS实现(@react-native-ohos 前缀)在通过NAPI桥接ArkTS与C++原生层时,可能未正确处理新的窗口或UI组件句柄。

建议的排查步骤:

  • 确认库的官方兼容性:检查 @react-native-ohos/react-native-amap3d 的官方文档或更新日志,确认其是否明确支持 HarmonyOS Next (API 6)。3.2.6-rc.2 中的 rc 表示候选版本,可能稳定性不足。
  • 升级依赖:尝试将 @rnoh/react-native-openharmony 升级到与您SDK版本匹配的最新稳定版(例如 0.72.1xx 系列的新版本),并查看是否有 react-native-amap3d 的更高版本(如 3.2.6 正式版或 3.3.x)。
  • 检查权限与配置:确保已在 module.json5 中正确声明地图模块所需的所有权限(如位置、网络等),并且高德地图的AppKey配置正确。
  • 简化测试:创建一个极简的测试页面,仅渲染地图组件,排除其他UI组件或复杂状态管理的干扰。

如果上述步骤无法解决,问题根源可能是该库的Native层代码需要针对API 6进行适配。您可以关注该开源仓库的更新,或暂时回退到兼容的HarmonyOS API 5版本进行开发。

回到顶部