HarmonyOS 鸿蒙Next 动态共享包HSP使用问题

HarmonyOS 鸿蒙Next 动态共享包HSP使用问题 有个鸿蒙项目(基于api9),其中新增了3个Module, module A 静态共享包HAR,module B静态共享包HAR,module C动态共享包HSP。

在entry的自定义AbilityStage中调用了module A中的一个初始化全局applicationContext赋值的方法,这个module A中applicationContext在entry和module B静态共享包中访问使用都正常,但是在module C动态库中访问的得到的applicationContext为undefined,这是啥原因?

5 回复

楼主你好,目前不支持在动态共享包中访问静态共享包的资源.

更多关于HarmonyOS 鸿蒙Next 动态共享包HSP使用问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你好,请问你解决了这个问题吗,我也是同样的问题,单例在动态共享包中完全失效

我也碰到了这个问题

当只有一个模块使用时,用har,多个模块使用时用hsp。目前我们把最底层的共享包改成了动态库hsp,这样的话动态库就只有一份,没有这个问题。静态库最后是会在不同模块使用时生成n份代码的,所以无法做这种单例,

HarmonyOS鸿蒙Next中的动态共享包(HSP)是一种用于模块化开发的机制,允许开发者将功能模块打包为独立的共享库,供其他应用动态加载和使用。HSP的核心优势在于其动态性,应用可以在运行时根据需要加载或卸载HSP,从而优化资源利用和性能。

在使用HSP时,开发者需要在module.json5中声明HSP的依赖关系,并通过AbilityServicestartAbilitystartService方法动态加载HSP。HSP的生命周期由系统管理,开发者无需手动管理其加载和卸载。

HSP的资源访问需要通过ResourceManager进行,确保资源在不同模块间的隔离与共享。此外,HSP的接口暴露需通过ets文件定义,并在调用方通过import语句引入。

调试HSP时,可使用DevEco Studio的模拟器或真机调试功能,确保HSP在不同设备上的兼容性。HSP的版本管理需遵循语义化版本规范,避免因版本冲突导致运行时错误。

HSP的发布需通过AppGallery Connect进行签名和分发,确保安全性和完整性。开发者需关注HSP的权限管理,确保其符合HarmonyOS的安全规范。

回到顶部