从API version 22开始,ArkUI_NativeAPIVariantKind中新增ARKUI_MULTI_THREAD_NATIVE_NODE枚举。
调用OH_ArkUI_GetModuleInterface接口,入参传入ARKUI_MULTI_THREAD_NATIVE_NODE,可以获取多线程NDK接口集合,完整示例请参考多线程NDK接口使用方式。
问题现象
调用多线程NDK接口返回ARKUI_ERROR_CODE_NODE_ON_INVALID_THREAD错误码。
解决措施
首先参考多线程NDK接口集合规格,查看调用的接口是否支持多线程调用,之后按照如下步骤排查。
在使用多线程NDK接口时,多个线程同时操作同一个组件或组件树,无法保证线程安全,需要开发者通过合理的架构设计避免出现上述情况。
可以参考多线程NDK接口调用规范,按照文档中的约束使用多线程NDK接口来保证线程安全。