HarmonyOS 鸿蒙Next中@hadss/hmrouter报错

HarmonyOS 鸿蒙Next中@hadss/hmrouter报错 deveco版本cke_613.png

@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

13 回复

开发者您好,您的api版本是多少。

本地使用deveco studio 5.1.1,api19(5.1.1),未复现您的问题。

"dependencies": {
    "@hadss/hmrouter": "^1.2.0",
    "@hadss/hmrouter-transitions": "^1.2.0"
  }

更多关于HarmonyOS 鸿蒙Next中@hadss/hmrouter报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


{
  "targetSdkVersion": "5.0.5(17)",
  "compatibleSdkVersion": "5.0.5(17)"
}

麻烦提供一份最小复现demo,我们进一步帮助分析定位,

我把 “@hadss/hmrouter”: “1.2.0-beta.0"升级到”@hadss/hmrouter": "^1.2.0"解决了这个问题,

有要学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 版本不兼容导致的。编译器生成的代码中引用了 NavDestinationHelperNavDestinationAttribute 类型中不存在的属性。

从您提供的错误信息来看,问题集中在几个特定的属性上:

  1. sdkApiVersion
  2. onResult
  3. onActive
  4. onNewParam

这些属性在您当前项目所依赖的 @hadss/hmrouter 库的类型定义中可能已被移除、重命名或修改了访问方式。

根本原因分析: @hadss/hmrouter 是一个第三方路由库,其内部实现高度依赖 HarmonyOS SDK 的底层导航 API。当 HarmonyOS Next 的 SDK 版本升级时,其公共 API 可能发生变化(例如,NavDestination 等类的属性和方法)。如果 @hadss/hmrouter 库没有及时更新以适配最新的 SDK,或者您使用的库版本与 SDK 版本不匹配,就会在编译时出现此类类型不匹配的错误。

解决方案:

  1. 检查并匹配版本兼容性:

    • 首先,确认您项目 oh-package.json5sdk 的版本。例如:"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,同样不匹配。
  2. 清理并重新生成:

    • 在修改版本后,执行以下清理操作:
      • 删除项目根目录下的 oh_modules 文件夹。
      • 删除项目根目录下的 build 文件夹。
    • 然后,在终端中运行 ohpm install 重新安装依赖。
    • 最后,尝试重新构建项目。
  3. 临时处理(如果急需编译):

    • 如果暂时找不到完美兼容的版本,且错误发生在编译器生成的文件(generated/ 目录下)中,您可以临时手动编辑这些生成的 .ets 文件,注释掉或删除报错的行(例如包含 sdkApiVersiononResultonActiveonNewParam 赋值的行)。
    • 请注意: 这是一个临时规避措施,每次执行完整的编译构建后,这些生成的文件可能会被重新覆盖,问题会再次出现。此方法仅用于验证是否为该库版本的根本问题。

总结: 核心问题是三方库版本与 HarmonyOS Next SDK 版本的兼容性。请以官方库文档的版本兼容说明为准,升级或降级 @hadss/hmrouter 到合适的版本。如果该库尚未发布适配您所用 SDK 的版本,可能需要考虑暂时使用其他路由方案,或关注该库的更新动态。

回到顶部