问题现象
目前有两个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"
},