HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题

HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题

【问题现象】

SDK项目中对功能做模块化拆分,如library、har1、har2,library依赖了har1和har2,点击Make Module ‘library’ 发现har1和har2并没有打包进library.har中。

【背景知识】

【定位思路】

  1. 检查har1、har2模块module.json5文件中的type字段是否为har类型。
  2. 检查library模块oh-package.json5文件dependencies字段中是否已添加对har1、har2模块编译产物的依赖。

【解决方案】

方案一:

  1. 确认har1、har2模块module.json5文件中的type字段为har类型:
{
   "module": {
     "name": "har1",
     "type": "har", // har类型
     "deviceTypes": [
       "default",
       "tablet",
       "2in1"
     ]
   }
}
  1. 编译构建har1、har2,得到编译产物 har1.har和har2.har。在library模块中新建文件夹 libs(或其他名称),将编译产物 har1.har和har2.har拷贝到 libs 文件夹中,在library模块中添加依赖指向模块内的两个HAR文件,编译构建 library 模块,此时har1和har2会被打包进library.har,可以供其他项目使用。
  • 开发工程结构:

点击放大

  • library模块的oh-package-lock.json5:
{
  "name": "library1",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "Index.ets",
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    "har1": "./libs/har1.har", // 依赖1
    "har2": "./libs/har2.har" // 依赖2
  }
}
  • 编译工程结构:

点击放大

方案二:

发布HAR包到OHPM私仓,ohpm添加仓库,在oh-package.json5文件中配置依赖的HAR包,可以直接从仓库中下载安装。

发布HAR包参考指导


更多关于HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,若打包时发现依赖的HAR包未被打入,可以检查以下方面:

  1. 依赖配置:确保在oh-package.json5文件中正确声明了HAR包的依赖项,路径和版本号无误。

  2. 模块引用:确认在代码中正确导入了HAR包的模块,且导入路径与HAR包的实际路径一致。

  3. 构建配置:检查build-profile.json5文件,确保HAR包被正确包含在构建配置中,未在excludeignore列表中。

  4. HAR包结构:确认HAR包的结构符合规范,包含必要的index.jsindex.ts等入口文件。

  5. 构建日志:查看构建日志,确认是否有关于HAR包的警告或错误信息,根据日志进行排查。

  6. 缓存清理:尝试清理构建缓存,重新执行构建命令,确保缓存问题不影响打包。

  7. 版本兼容性:确认HAR包的版本与当前项目使用的HarmonyOS SDK版本兼容。

通过以上步骤,可以排查并解决HAR包未被打入的问题。

回到顶部