在HarmonyOS鸿蒙Next Library中进行native开发时,SO库文件无法打包进hap

在HarmonyOS鸿蒙Next Library中进行native开发时,SO库文件无法打包进hap 在主Module entry中进行native开发是没有问题的。

但换作在非主Module中进行native开发,再在entry中加载该library,能编译也能打包,但运行不了。打开.hap文件,里面并没libs文件夹,更没有需要的libc++.so以及生成的项目so文件。

另外CMake可以指定需要加载的第三方so文件位置,但若该so文件不是存放在libs文件夹的${OHOS_ARCH}子文件夹中时,在程序打包时,该so文件不会被打包进去。

请问利用非主Module中进行native开发,还需要额外配置什么东西?(需要这么做的目的是业务逻辑分离,主Module只做UI相关业务逻辑,native为底层支持库,应该由单独的Module处理。)

5 回复

DevEco Studio 2.1.0.501 + com.huawei.ohos:hap:2.4.4.2,已可以在har库中进行native开发。

更多关于在HarmonyOS鸿蒙Next Library中进行native开发时,SO库文件无法打包进hap的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


非主Module中进行native开发,任何SO文件均无法打包进入hap

主Module中进行native开发分两种情况:

情况一:

打包插件:com.huawei.ohos:hap:2.4.1.4

依赖修改:implementation fileTree(dir: ‘libs’, include: [’.jar’, '.har’, ‘*.so’])

再将SO文件额外在Module的libs文件夹下保存一份

该方式可将所有需要的SO文件打包进hap。编译器未将第三方SO库打包进去,强行使用libs的副本满足情况。

情况二:

打包插件:com.huawei.ohos:hap:2.4.2.5

该方式无法将第三方SO打包进hap。编译器未将第三方SO库打包进去,强行使用libs的副本已无法完成。

楼主好,该问题已经转相关人员待处理中,有回复后我们会及时同步。

同时欢迎小伙伴们相互讨论、分享经验方法哦~

在HarmonyOS鸿蒙Next Library中进行native开发时,SO库文件无法打包进hap的问题,通常与构建配置或文件路径有关。确保在build-profile.json5module.json5中正确配置了nativeLibrary字段,并指定了SO库的路径。检查SO库文件是否放置在src/main/resources/lib目录下,且文件名和路径与配置一致。如果使用ohos-build插件,确认插件版本兼容,并检查build.gradle中是否启用了native模块。若问题仍未解决,检查IDE的构建日志,确认是否有相关错误提示。

在HarmonyOS鸿蒙Next Library中进行native开发时,若SO库文件无法打包进HAP,请检查以下步骤:确保SO库文件放置在src/main/libs目录下,并在build.gradle中正确配置ndk路径。同时,确认hap配置文件config.json中已声明nativeLibrary字段,并指定正确的SO库路径。若问题仍存在,清理项目并重新构建。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!