HarmonyOS Native C函数中有多线程交互,用napi调用会闪退

napi调用的C函数中有多线程交互,当ArkTS通过napi调用C函数运行app会闪退,这个问题应该怎么处理,有没有文档或demo?

LastFatalMessage:[default] [CheckThread:187] Fatal: ecma_vm cannot run in multi-thread! thread:39777 currentThread:39815
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

Fatal: ecma_vm cannot run in multi-thread该错误是由于env不能跨线程使用,回调函数必须运行在js的主线程中,其他线程发起调用会抛出该异常。如果需要从C++线程回调ArkTS接口,建议参考下面的指导。

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/use-uv-queue-work-0000001813575928-V5

可以尝试在C函数中主动调用arkt函数,使用napi_load_module_with_info加载ArkTS模块,然后使用napi_get_named_property获取模块导出的函数,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/use-napi-load-module-with-info-V5

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS C++ 调用 ets 层函数报错退
50浏览 • 1回复 待解决
NAPI线程调用TS线程函数
1307浏览 • 1回复 待解决
HarmonyOS 使用Webview退
21浏览 • 1回复 待解决
鸿蒙js开发 文件交互Api 退
6668浏览 • 2回复 待解决
打开图库应用时偶尔退
2441浏览 • 0回复 待解决
HarmonyOS ArkTS注册Native C函数监听
370浏览 • 1回复 待解决
HarmonyOS应用退问题
736浏览 • 1回复 待解决
HarmonyOS number toFixed方法退
42浏览 • 1回复 待解决