HarmonyOS鸿蒙Next中HAR A依赖HAR B,但打包资源里没有HAR B代码

HarmonyOS鸿蒙Next中HAR A依赖HAR B,但打包资源里没有HAR B代码

HAR依赖HAR问题

1. 创建工程
2. 创建HAR Module A
3. 创建HAR Module B
4. 发版HAR Module B 1.0.0 版本到私有库
5. Module A 配置oh-package.json5 依赖 Module B 1.0.0 版本
6. 打包Module A, Module B没有打包进Module A
3 回复

您可以参考以下步骤:
新建 模块A、B,在模块B中 编辑 C++代码,
在模块B中,模块B/src/main/cpp目录下新建include目录 ,将 C++代码的头文件放入该目录下
在模块B的build-profile.json5中配置C++头文件的目录

然后 使用add_library将xxxx.cpp(cpp文件)内的C++代码打到名称为模块B的so库中

在模块A的oh-package.json5中声明依赖

在模块A的CMakeLists.txt声明so库的依赖

这样就可以在 模块A中通过头文件 引用 模块B的C++代码了

更多关于HarmonyOS鸿蒙Next中HAR A依赖HAR B,但打包资源里没有HAR B代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,HAR(HarmonyOS Ability Package)A依赖HAR B,但打包资源里没有HAR B代码的情况,可能是由于以下原因:

  1. 依赖配置问题:HAR A的build-profile.json5文件中可能未正确配置对HAR B的依赖。确保在dependencies节点中正确声明了HAR B的依赖。

  2. HAR B未正确打包:HAR B可能未正确打包或未包含在最终的应用包中。检查HAR B的构建过程,确保其被正确编译和打包。

  3. 资源过滤规则:构建工具可能根据某些规则过滤掉了HAR B的代码。检查构建配置,确保没有设置不当的资源过滤规则。

  4. 版本不一致:HAR A和HAR B的版本可能不兼容,导致HAR B的代码未被包含。确保两者版本兼容。

  5. 构建缓存问题:构建缓存可能导致HAR B的代码未被正确更新。尝试清理缓存并重新构建项目。

  6. 模块化设计问题:HAR B可能被设计为动态加载模块,因此在打包时未包含其代码。检查模块化设计,确认是否需要动态加载HAR B。

  7. 构建工具版本问题:使用的构建工具版本可能存在问题,导致HAR B的代码未被正确打包。尝试更新构建工具到最新版本。

检查上述问题,确保HAR A正确依赖HAR B,并且HAR B的代码被包含在最终的打包资源中。

在HarmonyOS鸿蒙Next中,如果HAR A依赖HAR B,但打包资源里没有HAR B代码,可能是以下原因:

  1. 依赖未正确配置,请检查oh-package.json5文件中是否包含HAR B的依赖声明。

  2. HAR B未正确编译或打包,确保HAR B已成功编译并生成.har文件。

  3. 项目结构问题,确认HAR B的路径和引用是否正确。

  4. 使用ohpm安装依赖时出现问题,尝试重新安装或更新依赖。

检查并修正这些问题后,重新打包即可。

回到顶部