HarmonyOS 鸿蒙Next应用间hsp打包不支持
HarmonyOS 鸿蒙Next应用间hsp打包不支持 Install Failed: [Info]App install path:D:\projectCode\HMOS\CP_ActionConnectService_HiScenario_HMOSSDK\scenario\build\default\outputs\default\scenario-default-signed.hsp, queuesize:0, msg:error: failed to install bundle. error: dependent module does not exist. AppMod finish
当前业务的交付件hsp会被多个宿主集成,宿主开放接口,提供给har包给自己时,由于两者包名不一致,签名不同,会导致安装失败,如何解决?
更多关于HarmonyOS 鸿蒙Next应用间hsp打包不支持的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
应用间hsp是api10的能力,api9不支持。
提供方开发
创建工程:
- 新建工程,选择Empty Ability
- 设置工程名称和BundleName
- 新建module,选择Empty Ability即可,如需native开发,可选择Native C++
- 设置一个module name
- 进入SDK目录,为共享库添加
AllowAppShareLibrary
特权 - 修改API level为10
- 按住Ctrl + Alt + Shift + S,为共享库配置自动签名
- 修改entry和mylib的runtime为OpenHarmony
- 在app.json5中将bundleType设置为shared
- 自定义共享库的版本号
- 修改mylib的编译类型为hsp
- 修改module类型为shared,删除多余的mainElement和abilities标签,以及ability代码
- 如需开发native代码,还需要配置libIsolation为true
编写代码
- 编写ts、UI、native代码
- 接口导出:在ets目录下新建index.ets,统一导出需要共享的接口
- 在
oh-package.json5
文件中指定共享库的入口
编译
-
hvigor版本调整为
3.0.0-rc.8
(临时方案,正式方案不需要)如果安装失败,打开任务管理器,关闭所有nodejs进程,重新安装
-
选中
mylib
目录,点击菜单中的编译按钮 -
编译产物包含har包和hsp包
安装
将编译生成的hsp文件推送到开发板,在hdc shell中执行 bm install -s xxx.hsp
即可安装
(安装成功后可以通过 bm dump-shared -a
查看已安装的应用间HSP的包名)
使用方开发
创建工程
同普通应用,API level需要为10,runtime为OpenHarmony
导入共享库
- 将提供方开发–编译第3节 编译产物中的mylib.har放置到目标module中
- 在oh-package.json5中配置依赖
使用共享库
编译、打包、安装
-
修改hvigor版本号为 3.0.0-rc.8(临时方案,正式方案不需要)
-
修改hvigor(临时方案,正式方案不需要):Ctrl + 鼠标左键 点击build-profile.json5中任意字段,进入hvigor目录
找到process-profiles.js文件,删除
e.module.dependencies = this._dependencies
最后重启hvigor:在工程根目录执行
./hvigorw --stop-daemon
如果重启还不行,就重启下电脑,再重新编译
-
配置dependencies(临时方案,正式方案不需要):配置应用间共享库的bundleName、moduleName和versionCode
-
按普通应用方式编译打包,确保依赖的共享库都已安装后,执行hdc install xxx.hap即可安装
如果安装报错误,可以
bm dump-shared -a
确认下依赖的应用间HSP是否已安装。
更多关于HarmonyOS 鸿蒙Next应用间hsp打包不支持的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
有详细的文档吗?按照说的步骤下来行不通。 目前sdk是open 13,
针对帖子标题“HarmonyOS 鸿蒙Next应用间hsp打包不支持”的问题,以下是专业且直接的回答:
HarmonyOS(鸿蒙)Next版本中,若遇到应用间hsp(HarmonyOS Service Package,鸿蒙服务包)打包不支持的情况,这通常意味着当前的系统版本或开发工具链尚未完全适配该特性。hsp作为鸿蒙系统的一种服务封装机制,旨在促进应用间的服务共享与调用。若不支持打包,可能是因为:
- 版本不兼容:当前使用的鸿蒙系统版本可能不支持hsp打包功能,或者该功能在Next版本中尚未开放给所有开发者。
- 工具链问题:开发工具(如DevEco Studio)可能未更新到支持hsp打包的版本。
- 配置错误:项目配置中可能缺少必要的设置,导致hsp打包功能无法启用。
解决方法包括但不限于:
- 检查版本:确认鸿蒙系统版本及开发工具版本是否支持hsp打包。
- 查阅文档:参考鸿蒙官方文档,了解hsp打包的详细要求与步骤。
- 更新工具:确保开发工具为最新版本,以支持新特性。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,