HarmonyOS鸿蒙Next中RNOH三方库接入使用Codegen生成代码成功后运行项目报Property 'xxx' does not exist on type

HarmonyOS鸿蒙Next中RNOH三方库接入使用Codegen生成代码成功后运行项目报Property ‘xxx’ does not exist on type 操作步骤:

  1. 环境
"@rnoh/react-native-openharmony": "0.72.86",
"devDependencies": {"react-native": "0.72.5"}
  1. 安装三方库
yarn add @react-native-oh-tpl/react-native-amap-geolocation

"@react-native-oh-tpl/react-native-amap-geolocation": "^1.2.3-0.0.5",
  1. Codegen生成桥接代码
yarn react-native codegen-harmony --cpp-output-path ./harmony/entry/src/main/cpp/generated --rnoh-module-path ./harmony/entry/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation

cke_4388.png

  1. 原生端及ARKTS侧代码引入

4.运行报错

1 ERROR: ArkTS:ERROR File: /Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@react-native-oh-tpl+react-native-amap-geolocation@xudu0fihv6usgzcnmzt0rm3kvda3m+mzkm4wz3ooewc=/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation/src/main/ets/AMapGeolocationModule.ts:47:93
 Namespace '"/Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@rnoh+react-native-openharmony@lpa0udgrkuk5cowpdlvzq9beb3zchj8tc0ip7l134wm=/oh_modules/@rnoh/react-native-openharmony/generated/turboModules/ts"' has no exported member 'RNAMapGeolocation'.


2 ERROR: ArkTS:ERROR File: /Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@react-native-oh-tpl+react-native-amap-geolocation@xudu0fihv6usgzcnmzt0rm3kvda3m+mzkm4wz3ooewc=/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation/src/main/ets/AMapGeolocationModule.ts:219:31
 Namespace '"/Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@rnoh+react-native-openharmony@lpa0udgrkuk5cowpdlvzq9beb3zchj8tc0ip7l134wm=/oh_modules/@rnoh/react-native-openharmony/generated/turboModules/ts"' has no exported member 'RNAMapGeolocation'.


3 ERROR: ArkTS:ERROR File: /Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@react-native-oh-tpl+react-native-amap-geolocation@xudu0fihv6usgzcnmzt0rm3kvda3m+mzkm4wz3ooewc=/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation/src/main/ets/AMapGeolocationModule.ts:222:26
 Property 'RNAMapGeolocation' does not exist on type 'typeof import("/Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@rnoh+react-native-openharmony@lpa0udgrkuk5cowpdlvzq9beb3zchj8tc0ip7l134wm=/oh_modules/@rnoh/react-native-openharmony/generated/turboModules/ts")'.


4 ERROR: ArkTS:ERROR File: /Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@react-native-oh-tpl+react-native-amap-geolocation@xudu0fihv6usgzcnmzt0rm3kvda3m+mzkm4wz3ooewc=/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation/src/main/ets/AMapGeolocationModule.ts:224:33
 Property 'RNAMapGeolocation' does not exist on type 'typeof import("/Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@rnoh+react-native-openharmony@lpa0udgrkuk5cowpdlvzq9beb3zchj8tc0ip7l134wm=/oh_modules/@rnoh/react-native-openharmony/generated/turboModules/ts")'.


5 ERROR: ArkTS:ERROR File: /Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@react-native-oh-tpl+react-native-amap-geolocation@xudu0fihv6usgzcnmzt0rm3kvda3m+mzkm4wz3ooewc=/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation/src/main/ets/AMapGeolocationPackage.ts:32:21
 Property 'RNAMapGeolocation' does not exist on type 'typeof import("/Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@rnoh+react-native-openharmony@lpa0udgrkuk5cowpdlvzq9beb3zchj8tc0ip7l134wm=/oh_modules/@rnoh/react-native-openharmony/generated/turboModules/ts")'.


6 ERROR: ArkTS:ERROR File: /Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@react-native-oh-tpl+react-native-amap-geolocation@xudu0fihv6usgzcnmzt0rm3kvda3m+mzkm4wz3ooewc=/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation/src/main/ets/AMapGeolocationPackage.ts:39:24
 Property 'RNAMapGeolocation' does not exist on type 'typeof import("/Users/lg/ecospace/workflow/harmony/oh_modules/.ohpm/@rnoh+react-native-openharmony@lpa0udgrkuk5cowpdlvzq9beb3zchj8tc0ip7l134wm=/oh_modules/@rnoh/react-native-openharmony/generated/turboModules/ts")'.


COMPILE RESULT:FAIL {ERROR:7 WARN:136}
> hvigor ERROR: BUILD FAILED in 2 s 982 ms 

更多关于HarmonyOS鸿蒙Next中RNOH三方库接入使用Codegen生成代码成功后运行项目报Property 'xxx' does not exist on type的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

查一下codegen-harmony 命令中 --cpp-output-path 和 --rnoh-module-path 路径是否与工程实际路径匹配。生成的 RNAMapGeolocation 类型文件应出现在以下目录:

./harmony/entry/src/main/cpp/generated

./harmony/entry/oh_modules/@react-native-oh-tpl/react-native-amap-geolocation

删除现有生成的代码目录,重新执行 yarn react-native codegen-harmony 命令

更多关于HarmonyOS鸿蒙Next中RNOH三方库接入使用Codegen生成代码成功后运行项目报Property 'xxx' does not exist on type的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


该错误是由于RNOH三方库生成的TypeScript类型定义文件未正确包含’xxx’属性导致。在HarmonyOS Next中,RNOH的Codegen工具生成代码时可能未完整同步原生模块的类型声明。

检查RNOH配置文件中nativeModules数组的声明是否正确,确认’xxx’属性在TurboModule接口中明确定义。重新执行Codegen命令生成类型文件,确保tsconfig.json包含正确的类型引用路径。

若问题持续,检查RNOH版本与HarmonyOS Next的兼容性,可能需要更新RNOH或调整类型声明文件。

这是典型的Codegen生成代码与RNOH版本不匹配导致的类型声明缺失问题。错误信息显示RNAMapGeolocation@rnoh/react-native-openharmony/generated/turboModules/ts命名空间中不存在。

检查你的Codegen命令输出路径是否正确指向了RNOH模块的generated目录。确保生成路径与RNOH版本0.72.86的目录结构一致。建议重新运行Codegen命令,确认生成的TypeScript声明文件包含RNAMapGeolocation接口定义。

如果问题依旧,检查三方库的NativeModuleSpec名称是否与生成的类型名称匹配。有时需要手动调整生成的类型声明文件以适配RNOH的模块加载机制。

回到顶部