HarmonyOS鸿蒙Next中@react-native-ohos/react-native-skia引入0.72react版本

HarmonyOS鸿蒙Next中@react-native-ohos/react-native-skia引入0.72react版本 cke_226.png

在模拟器上运行报这个错误,又遇到的吗


更多关于HarmonyOS鸿蒙Next中@react-native-ohos/react-native-skia引入0.72react版本的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

开发者您好,

请问您的@react-native-ohos/react-native-skia、@rnoh/react-native-openharmony版本是多少?

在模块的build-profile.json5文件的externalNativeOptions属性中是否配置了x86_64,配置如下:

"externalNativeOptions": {
  "path": "./src/main/cpp/CMakeLists.txt",
  "arguments": "",
  "cppFlags": "",
  "abiFilters": [
    "arm64-v8a",
    "x86_64"
  ]
}

当去掉x86_64后能否正常在手机上正常运行呢。

更多关于HarmonyOS鸿蒙Next中@react-native-ohos/react-native-skia引入0.72react版本的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


身边没有真机,还没有测试

好的,期待您的反馈,确认当前构建是否按照 上述build-profile.json5 中的配置执行。另外,想了解在移除 x86_64 配置后,应用是否仍能在目标手机上正常运行。

在HarmonyOS鸿蒙Next中,@react-native-ohos/react-native-skia库引入0.72版本,表明该库已适配React Native 0.72版本,以支持在鸿蒙应用中使用Skia图形库进行高性能2D绘图。这为鸿蒙开发者提供了在React Native框架下实现复杂图形渲染的能力。

根据您提供的错误信息,这通常是由于 @react-native-ohos/react-native-skia 库与 HarmonyOS Next 环境或 React Native 0.72 版本存在兼容性问题导致的。具体原因可能是:

  1. NDK 版本或配置不匹配:错误提示中提到了 libc++_shared.solibreactnative.so,这表明可能是 C++ 运行时库或 React Native 原生模块的依赖出现了冲突。在 HarmonyOS Next 环境下,需要使用 HarmonyOS 的 NDK 进行编译,而非标准的 Android NDK。

  2. Skia 库的二进制文件不兼容react-native-skia 是一个重度依赖原生代码(C++)的库。您安装的 @react-native-ohos/react-native-skia 可能其预编译的二进制文件(.so 文件)是针对特定架构或操作系统(如 Android)构建的,与 HarmonyOS Next 的模拟器环境(可能是 x86 或 ARM 架构的鸿蒙系统镜像)不兼容。

  3. React Native 0.72 版本适配问题:React Native 0.72 版本在 HarmonyOS Next 上的适配可能尚不完全稳定,特别是对于 react-native-skia 这样复杂的原生模块。库的鸿蒙版本可能主要针对某个特定版本的 RN 进行过测试。

建议的解决步骤:

  1. 清理并重新构建

    • 删除项目中的 node_modules 目录和 oh_modules 目录。
    • 运行 npm installyarn install 重新安装依赖。
    • 运行 npx react-native-ohos init 或对应的鸿蒙构建命令重新初始化原生工程。
    • 彻底重新构建项目。
  2. 检查库的兼容性

    • 确认 @react-native-ohos/react-native-skia 的官方文档或发布说明,明确其支持的 React Native 版本和 HarmonyOS SDK 版本。
    • 尝试寻找是否有更新版本的 @react-native-ohos/react-native-skia 发布,或者社区是否有针对此问题的修复。
  3. 关注鸿蒙生态进展

    • 此类深度依赖原生能力的库在 HarmonyOS Next 上的完全适配可能需要时间。建议关注华为官方开发者社区或该库的仓库,以获取最新的兼容性状态和解决方案。

由于 HarmonyOS Next 是一个较新的系统,第三方库的适配可能仍在进行中。如果上述步骤无法解决,问题可能需要在库的鸿蒙版本更新后才能得到根本解决。

回到顶部