HarmonyOS 鸿蒙Next 闭源Har中定义@Sendable的基类对象,再其他模块中继承报错
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文件中的对象。 请问对于这种使用场景,应该如何解决?
楼主你好,请问我在release模式下也遇到这个问题该怎么办呢?
在HarmonyOS鸿蒙Next闭源环境中,定义带有@Sendable
标记的基类并在其他模块中继承时遇到报错,通常与模块间的可见性、权限管理或跨模块通信机制有关。@Sendable
标记在鸿蒙系统中用于指示对象可以在并发环境中安全传递,但这并不直接解决模块间继承的问题。
首先确认基类是否已正确导出(export)并在其他模块中正确导入(import)。鸿蒙的模块化系统要求每个模块显式声明其对外暴露的接口和类型。
其次,检查是否有跨模块通信(IPC)相关的配置缺失或错误。如果基类或其成员涉及跨模块访问,需确保使用正确的IPC机制(如使用Intent或Message传递数据)。
最后,确认基类及其继承关系是否违反了鸿蒙的安全模型,特别是涉及敏感数据或操作时。
如果以上步骤均无误,报错可能源于鸿蒙系统的特定限制或bug。此时,建议检查鸿蒙系统的更新日志和开发者文档,看是否有相关问题的修复或说明。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html