HarmonyOS 鸿蒙Next 闭源Har中定义@Sendable的基类对象,再其他模块中继承报错

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 闭源Har中定义@Sendable的基类对象,再其他模块中继承报错

闭源Har中定义@Sendable的基类对象,再其他模块中继承报错 在har模块A 中定义了@Sendable的基类

: @Sendable export default abstract class TAFSendObject { …… }

A模块的module.json5中已配置: “metadata”: [ { “name”: “UseTsHar”, “value”: “true” } ]

编译为闭源Har后,在其他模块中进行引用:  @Sendable export class HQSys_SysMonitorInfo extends TAFSendObject {  constructor() { super(); } …… }  

编译时报错: The inheritance for “Sendable” classes is limited (arkts-sendable-class-inheritance) <ArkTSCheck> ========================= 1. 关闭混淆配置,编译开源har,是ok的  

2.在尝试在混淆配置中,对TAFSendObject排除混淆 -keep ./src/main/ets/sendable/TAFSendObject.ets 依然失败,检查发现,编译生成了xxx.ts 和 xxx.d.ets,

 xxx.ts中没有@Sendable: export default abstract class TAFSendObject { constructor() { “use sendable”; } public static readonly TYPE_BYTE: number = 0; } xxx.d.ets中存在@Sendable: @Sendable export default abstract class TAFSendObject { static readonly TYPE_BYTE: number; …… }

然而实际在使用时,外部依赖的是xxx.ts文件中的对象。  请问对于这种使用场景,应该如何解决?

3 回复
在打包当做har用的时候不要混淆打,建议在release模式下开启混淆能力,具体请参考文档:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-app-code-ob-V5#section13780943192313

楼主你好,请问我在release模式下也遇到这个问题该怎么办呢?

在HarmonyOS鸿蒙Next闭源环境中,定义带有@Sendable标记的基类并在其他模块中继承时遇到报错,通常与模块间的可见性、权限管理或跨模块通信机制有关。@Sendable标记在鸿蒙系统中用于指示对象可以在并发环境中安全传递,但这并不直接解决模块间继承的问题。

首先确认基类是否已正确导出(export)并在其他模块中正确导入(import)。鸿蒙的模块化系统要求每个模块显式声明其对外暴露的接口和类型。

其次,检查是否有跨模块通信(IPC)相关的配置缺失或错误。如果基类或其成员涉及跨模块访问,需确保使用正确的IPC机制(如使用Intent或Message传递数据)。

最后,确认基类及其继承关系是否违反了鸿蒙的安全模型,特别是涉及敏感数据或操作时。

如果以上步骤均无误,报错可能源于鸿蒙系统的特定限制或bug。此时,建议检查鸿蒙系统的更新日志和开发者文档,看是否有相关问题的修复或说明。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部