错误内容:

        在模拟器启动工程,遇到了一个很棘手的错误,报错如下:

Reason:Error
Error name:Error
Error message:Couldn't create bindings between ETS and CPP. libRNOHApp is undefined.
Stacktrace:
    at RNOHError @rnoh/react-native-openharmony (oh_modules/.ohpm/@rnoh+react-native-openharmony@0.77.40/oh_modules/@rnoh/react-native-openharmony/src/main/ets/RNOH/RNOHError.ts:41:5)
    at FatalRNOHError @rnoh/react-native-openharmony (oh_modules/.ohpm/@rnoh+react-native-openharmony@0.77.40/oh_modules/@rnoh/react-native-openharmony/src/main/ets/RNOH/RNOHError.ts:150:7)
    at onInit @rnoh/react-native-openharmony (oh_modules/.ohpm/@rnoh+react-native-openharmony@0.77.40/oh_modules/@rnoh/react-native-openharmony/src/main/ets/RNOH/NapiBridge.ts:37:25)
    at create @rnoh/react-native-openharmony (oh_modules/.ohpm/@rnoh+react-native-openharmony@0.77.40/oh_modules/@rnoh/react-native-openharmony/src/main/ets/RNOH/RNInstancesCoordinator.ets:125:18)
    at onCreate @rnoh/react-native-openharmony (oh_modules/.ohpm/@rnoh+react-native-openharmony@0.77.40/oh_modules/@rnoh/react-native-openharmony/src/main/ets/RNOH/RNAbility.ets:94:58)


错误原因:

        无法在ETS(ArkTS)和CPP之间创建绑定,原因可能是动态库librnoh_app.so缺失或配置不正确。

解决方案:

        尝试以下解决方案:

        1、当前deveco编译,har包A的so依赖了har包B的so,但是har包A不会打包Har包B的so到的har包A里,需要在自定义模块/build-profile.json5中增加:

"nativeLib": {
  // apiType字段同级别
  "excludeFromHar": false
}

        但是我在向在模块级build-profile.json5代码中增加配置时,报出以下错误:

        找不到该项配置,只能将其改为

    "nativeLib": {
      "excludeSoFromInterfaceHar": false
    }

        但是clean后重新执行没有任何效果,还是一样的错误。

        工程级build-profile.json5代码中可以增加该配置,但是一样没有效果。

        2、将oh_modules/@rnoh/react-native-openharmony/src/main/cpp/third-party/prebuilt目录下的内容拷贝到oh_modules/@rnoh/react-native-openharmony/libs目录,并重新build,也没有效果。

最终解决方案:

        初步估计是安装@rnoh/react-native-openharmony时出现的问题导致。安装@rnoh/react-native-openharmony曾报错说版本不匹配,被我使用--force方式强行安装成功。

        但是卸载@rnoh/react-native-openharmony还是存在这个bug,因此我重新创建了一个application,这次安装@rnoh/react-native-openharmony时注意了版本匹配问题,重新创建的applicantion可以正常运行。

        

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐