目录

跨工程引用模块报错

问题现象

目前有两个HarmonyOS工程ProjectA和ProjectB,现在需要在ProjectA中引用ProjectB内的模块。

编译运行ProjectA,报错如下:

Error Message: Failed to generate the cache path corresponding to file /path/to/project/CommonSDK/ProjectB_SDK/oh_modules/.ohpm/@ohos+hypium@1.0.18/oh_modules/@ohos/hypium/src/main/Constant.js.
Because the file belongs to a module outside the project and has no project information.

背景知识

Module是HarmonyOS应用的基本功能单元,包含了源代码、资源文件、第三方库及应用清单文件,每一个Module都可以独立进行编译。

问题定位

查看ProjectA配置build-profile.json5中,modules的srcPath字段是否添加了ProjectB的模块。

分析结论

工程不能引工程,可以引用模块。工程级build-profile.json5中modules的srcPath字段下没有引用工程外模块。

修改建议

在工程级build-profile.json5文件modules配置中,srcPath字段下配置工程外Module的相对路径来导入ProjectB模块,具体请参考导入/引用模块。

示例如下:

在工程级build-profile.json5文件中添加配置参考如下:

{
  "name": "library",
  "srcPath": "../MyApplication2/library"
}

在oh-package.json5中添加依赖参考如下:

"dependencies": {
  "library":"../MyApplication2/library"
},