HarmonyOS 鸿蒙Next 修改HAP的version(1.0.0=>1.0.1)后,报错cannot find record '&library/Index&1.0.0', please check the request path

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 修改HAP的version(1.0.0=>1.0.1)后,报错cannot find record ‘&library/Index&1.0.0’, please check the request path

  1. 创建一个新的 HarmonyOS Next 项目
  2. 创建一个 HAR 模块,版本 1.0.0
  3. 在 HAP 模块中,通过 ohpm install 安装这个 HAR 模块
  4. 在 HAP 模块中导入并使用这个 HAR 模块中的内容
  5. 启动模拟器,运行 HAP 模块
  6. 修改 HAR 模块的 version 为 1.0.1
  7. 重新运行 HAP 模块,程序闪退,报错如下:
Device info:emulator
Build info:emulator 5.0.0.106(SP3DEVC00E106R4P11log)
Fingerprint:b8e55addb39d2e7c0c6c991356fda0963e97ef7b768baabaa668917291f1f835
Module name:com.iuroc.ohpm.myapplication
Version:1.0.0
VersionCode:1000000
PreInstalled:No
Foreground:Yes
Pid:13504
Uid:20020049
Reason:ReferenceError
Error name:ReferenceError
Error message:cannot find record '&library/Index&1.0.0', please check the request path.'/data/storage/el1/bundle/entry/ets/modules.abc'.
Stacktrace:
Cannot get SourceMap info, dump raw stack:
#01 pc 000000000077e6c7 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#02 pc 000000000035f49c /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#03 pc 00000000001e26b8 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#04 pc 00000000001e1f11 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#05 pc 000000000027bcc1 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#06 pc 00000000006568e5 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#07 pc 0000000000652fee /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#08 pc 00000000005ceda9 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#09 pc 00000000005bb43e /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#10 pc 00000000005c1689 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#11 pc 00000000005c1438 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#12 pc 00000000005c1081 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#13 pc 000000000048a956 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#14 pc 000000000048b93b /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)
#15 pc 000000000063b569 /system/lib64/platformsdk/libark_jsruntime.so(6ac7316e85269dc6f57ff28f5b19aa10)

更多关于HarmonyOS 鸿蒙Next 修改HAP的version(1.0.0=>1.0.1)后,报错cannot find record '&library/Index&1.0.0', please check the request path的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

20 回复

您好,您的问题已收到,我们的研发人员正在处理中,请耐心等待

更多关于HarmonyOS 鸿蒙Next 修改HAP的version(1.0.0=>1.0.1)后,报错cannot find record '&library/Index&1.0.0', please check the request path的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我发现的一种解决办法,我发布在了 Bilibili,请看视频:https://www.bilibili.com/video/BV1qZqPYgE59/ 希望对你们分析定位问题有所帮助。

希望HarmonyOS能继续优化系统稳定性,减少崩溃和重启的情况。

通过楼上的分析,把oh-package中相应包的版本号改为实际引入的版本号可以解决

同样的问题但是清理了无效

感谢楼主分享,看这个现象应该是IDE的一个问题,可以先用您提供的方案规避,等待后续IDE的版本更新

最终最终解决办法:构建 => 清理项目

cke_316.png

终极解决办法:被依赖模块 (HAR 模块)的版本号更新后,删除 依赖模块 (HAP 模块)目录下的 build/default/cachebuild/default/generated 目录,重新运行便不再报错。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

问题的源头在依赖模块(HAP 模块) build/default/cache/default/default@CompileArkTS/esmodule/debug/{修改了版本号的模块名称}

更新了被依赖模块(HAR 模块)的版本号后,依赖模块(HAP 模块)的上述 cache 目录并没有更新,而只有删除 build/default/generated,才会重新生成 build/default/cache,这就是为什么要同时删除这 2 个目录才能解决问题的原因。

最简单方便的办法,就是直接删除依赖模块(HAP 模块)的 build 目录,令其在重新运行模块时重新生成即可。

进一步测试,发现可以这样解决:

HAP 模块 entry 的 oh-package.json5 中,依赖了模块 library,现在修改 library 的版本号,运行 entry 会发现报错:cannot find record '&library/Index&修改前的旧版本号', please check the request path.'./data/storage/el1/bundle/entry/ets/modules.abc'。

现在删除 entry 目录下的 build 目录,重新运行即可。

说一下我的解决办法:

  1. 初始化 Git 仓库,并提交全部代码,保证 git status 干净

  2. 关闭 IDE,通过系统资源管理器打开项目目录

  3. 删除仓库目录除 .git 外的所有文件和子目录

  4. 执行 git restore . 将仓库还原

  5. 重新使用 IDE 打开项目,初始化项目

也就是说,是 .gitignore 清单中的某些文件触发了报错,目前还没有发现具体是哪个文件导致的,只能先通过还原 Git 仓库来解决。

主菜单 => 构建 => 清理项目

我也遇到了 楼主解决了吗

主菜单 => 构建 => 清理项目

有人解决么?

我发现的一种解决办法,我发布在了 Bilibili,请看视频:https://www.bilibili.com/video/BV1qZqPYgE59/ 希望对你们分析定位问题有所帮助。

主菜单 => 构建 => 清理项目,

针对您提到的HarmonyOS(鸿蒙)Next在修改HAP(HarmonyOS Application Package)的version从1.0.0到1.0.1后出现的报错问题,这里提供直接相关的解决方案:

此错误通常表明系统在尝试加载或访问旧版本的资源或库时未能找到正确的路径。修改HAP版本后,可能相关的依赖或引用路径未同步更新。

  1. 检查manifest.json:确保manifest.json文件中的moduleentry部分引用的所有资源版本都已更新至1.0.1。特别是检查是否有硬编码的路径指向了旧版本(1.0.0)。

  2. 清理和重建项目:在开发环境中执行清理操作,删除旧的构建文件,然后重新构建项目。这有助于确保所有引用都是最新的。

  3. 检查第三方库和依赖:如果您的HAP依赖于第三方库或其他模块,请确保这些依赖也已更新到与新版本兼容的状态。

  4. 部署和测试:在修改完以上内容后,重新部署应用并进行测试,确保所有功能正常运行。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部