HarmonyOS 鸿蒙Next 动态Import

发布于 1周前 作者 yuanlaile 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 动态Import

我们有两个库A B,都push到了私有仓,B在entry模块中动态导入是没问题的。 但是在A中动态导入B 遇到了问题:

ReferenceError: Cannot find module '[@nio](/user/nio)/lg-ref-library' imported from 'kg_modules/@test/lgrouter/src/main/ets/LgRouterManager'.@64296f23

buildoption中已添加了 runtimeonly:

  "buildOption": {
    "arkOptions": {
      "runtimeOnly": {
        "packages": [
          '@test/lg-ref-library'
        ]
      }
    }
  },

这该怎么解决啊?


更多关于HarmonyOS 鸿蒙Next 动态Import的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可以尝试使用useNormalizedOHMUrl配置, 文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-build-profile-0000001778834297-V5 具体说明: 在工程配置文件的build-profile.json5里的"products":配置如下:

"products": [
{
"name": "default",
"signingConfig": "default",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS",
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true
}
}
}
],

并使用变量动态import,在hap里配置变量动态import的相关配置。就可以在hap依赖har1和har2,然后调用har1动态import har2 "buildOption": { "strictMode": { "useNormalizedOHMUrl": true } }

更多关于HarmonyOS 鸿蒙Next 动态Import的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


把AB库调换一下

HarmonyOS 鸿蒙Next 动态Import功能允许应用在运行时根据需要加载模块或库,而非在编译时静态地包含所有依赖。这一特性显著提升了应用的灵活性和模块化程度,使开发者能够更有效地管理应用的体积和内存使用。

在鸿蒙系统中,动态Import通常依赖于特定的框架和API来实现。开发者需要利用鸿蒙提供的动态加载接口,通过指定模块路径或标识符来加载所需资源。加载成功后,应用即可访问模块中的功能、类、方法等。

实现动态Import时,需注意版本兼容性、加载效率及安全性。确保目标模块与主应用兼容,避免运行时错误;优化加载流程,减少用户等待时间;对加载的模块进行安全验证,防止恶意代码注入。

此外,鸿蒙Next可能引入了新的API或工具来简化动态Import的实现过程,开发者应查阅最新的官方文档,了解如何利用这些新特性。

总之,动态Import为鸿蒙应用开发提供了强大的灵活性,但也需要开发者谨慎处理相关挑战。通过合理利用鸿蒙系统的动态加载机制,开发者可以创建出更加高效、模块化的应用。

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

回到顶部