HarmonyOS 鸿蒙Next中@hadss/hmrouter报错
HarmonyOS 鸿蒙Next中@hadss/hmrouter报错
deveco版本
@hadss/hmrouter版本:
"[@hadss](/user/hadss)/hmrouter": "^1.2.0-rc.0",
"[@hadss](/user/hadss)/hmrouter-transitions": "^1.2.0-rc.0"
报错信息
1 ERROR: 10505001 ArkTS Compiler Error
Error Message: Property ‘sdkApiVersion’ does not exist on type ‘NavDestinationHelper’. At File: D:/harmony/work/zleap_hmapp/features/home/src/main/ets/generated/HMSearchView1283054733.ets:33:20
2 ERROR: 10505001 ArkTS Compiler Error
Error Message: Property ‘onResult’ does not exist on type ‘NavDestinationHelper’. At File: D:/harmony/work/zleap_hmapp/features/home/src/main/ets/generated/HMSearchView1283054733.ets:51:49
3 ERROR: 10505001 ArkTS Compiler Error
Error Message: Property ‘onActive’ does not exist on type ‘NavDestinationHelper’. At File: D:/harmony/work/zleap_hmapp/features/home/src/main/ets/generated/HMSearchView1283054733.ets:52:73
修改@hadss/hmrouter为:
"[@hadss](/user/hadss)/hmrouter": "^1.2.0",
"[@hadss](/user/hadss)/hmrouter-transitions": "^1.2.0"
报错信息
ERROR: 10505001 ArkTS Compiler Error
Error Message: Property ‘onNewParam’ does not exist on type ‘NavDestinationAttribute’. At File: D:/harmony/work/zleap_hmapp/features/home/src/main/ets/generated/HMSearchView1283054733.ets:54:8
更多关于HarmonyOS 鸿蒙Next中@hadss/hmrouter报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
{
"targetSdkVersion": "5.0.5(17)",
"compatibleSdkVersion": "5.0.5(17)"
}
麻烦提供一份最小复现demo,我们进一步帮助分析定位,
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
解决了吗 也出现这个问题,修改modelVersion也没用,修改了 @hadss/hmrouter 也没用,
刚使用api19解决了,
看来只能这样了,我也是更新api19后就好了,
HarmonyOS的开发者模式提供了很多实用的工具,方便我们进行调试和优化。
"@hadss/hmrouter": "@param:dependencies.@hadss/hmrouter",
我的是这种方式,应该都是一样的,我把lock文件删了,还是不行
你好,解决了吗?我今天也遇到这个问题了,在新电脑上拉取代码,更改router的版本号也没用
在HarmonyOS Next中,@hadss/hmrouter报错通常是由于该第三方路由库与当前鸿蒙Next的API版本不兼容所致。鸿蒙Next采用了全新的ArkTS声明式开发范式,其API和系统架构与旧版本有较大差异。建议检查该库是否已发布支持HarmonyOS Next的版本,或查阅其官方文档的兼容性说明。
这个错误是由于 @hadss/hmrouter 库的版本与您当前使用的 HarmonyOS Next SDK 版本不兼容导致的。编译器生成的代码中引用了 NavDestinationHelper 或 NavDestinationAttribute 类型中不存在的属性。
从您提供的错误信息来看,问题集中在几个特定的属性上:
sdkApiVersiononResultonActiveonNewParam
这些属性在您当前项目所依赖的 @hadss/hmrouter 库的类型定义中可能已被移除、重命名或修改了访问方式。
根本原因分析:
@hadss/hmrouter 是一个第三方路由库,其内部实现高度依赖 HarmonyOS SDK 的底层导航 API。当 HarmonyOS Next 的 SDK 版本升级时,其公共 API 可能发生变化(例如,NavDestination 等类的属性和方法)。如果 @hadss/hmrouter 库没有及时更新以适配最新的 SDK,或者您使用的库版本与 SDK 版本不匹配,就会在编译时出现此类类型不匹配的错误。
解决方案:
-
检查并匹配版本兼容性:
- 首先,确认您项目
oh-package.json5中sdk的版本。例如:"sdk": "HarmonyOS NEXT 5.0.0.15"。 - 前往
@hadss/hmrouter项目的官方仓库(如 Gitee 或 OpenHarmony 三方库中心),查阅其README或发布说明,找到与您当前 HarmonyOS SDK 版本明确兼容的库版本。 - 将
oh-package.json5中@hadss/hmrouter和@hadss/hmrouter-transitions的版本修改为官方推荐的兼容版本。您尝试从^1.2.0-rc.0切换到^1.2.0,但出现了新的错误,说明1.2.0版本可能适配了不同的 SDK API,同样不匹配。
- 首先,确认您项目
-
清理并重新生成:
- 在修改版本后,执行以下清理操作:
- 删除项目根目录下的
oh_modules文件夹。 - 删除项目根目录下的
build文件夹。
- 删除项目根目录下的
- 然后,在终端中运行
ohpm install重新安装依赖。 - 最后,尝试重新构建项目。
- 在修改版本后,执行以下清理操作:
-
临时处理(如果急需编译):
- 如果暂时找不到完美兼容的版本,且错误发生在编译器生成的文件(
generated/目录下)中,您可以临时手动编辑这些生成的.ets文件,注释掉或删除报错的行(例如包含sdkApiVersion、onResult、onActive、onNewParam赋值的行)。 - 请注意: 这是一个临时规避措施,每次执行完整的编译构建后,这些生成的文件可能会被重新覆盖,问题会再次出现。此方法仅用于验证是否为该库版本的根本问题。
- 如果暂时找不到完美兼容的版本,且错误发生在编译器生成的文件(
总结:
核心问题是三方库版本与 HarmonyOS Next SDK 版本的兼容性。请以官方库文档的版本兼容说明为准,升级或降级 @hadss/hmrouter 到合适的版本。如果该库尚未发布适配您所用 SDK 的版本,可能需要考虑暂时使用其他路由方案,或关注该库的更新动态。


