HarmonyOS ETS和c++层通信
将cocos2d-x移植到HarmonyOS上之后运行的过程中经常发生高概率崩溃的问题,崩溃栈如下,看起来是崩溃在WorkerThreads上的,请问通过WorkerThreads线程来运行cocos2d-x是否有隐患?
Process life time:8s
Reason:Signal:SIGSEGV(SEGV_MAPERR)@0x0000005c69c21544
Fault thread info:
Tid:62406, Name:WorkerThread
#00 pc 0000005c69c21544 Not mapped
#01 pc 0000000000000076 Not mapped
#02 pc 00000000019bec0c /data/storage/el1/bundle/libs/arm64/libnativerender.so(lua_pcall+144)(9e896cf2715478e661994ec045a9309af5781f29)
#03 pc 0000000000fb0160 /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::LuaStack::executeFunctionByHandler(int, int)+128)(9e896cf2715478e661994ec045a9309af5781f29)
#04 pc 0000000000fa7cf4 /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::LuaEngine::handleScheduler(void*)+124)(9e896cf2715478e661994ec045a9309af5781f29)
#05 pc 0000000000fa772c /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::LuaEngine::sendEvent(cocos2d::ScriptEvent*)+200)(9e896cf2715478e661994ec045a9309af5781f29)
#06 pc 0000000000ea26a0 /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::TimerScriptHandler::trigger()+132)(9e896cf2715478e661994ec045a9309af5781f29)
#07 pc 0000000000ea0dd0 /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::Timer::update(float)+344)(9e896cf2715478e661994ec045a9309af5781f29)
#08 pc 0000000000eadc68 /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::Scheduler::update(float)+1408)(9e896cf2715478e661994ec045a9309af5781f29)
#09 pc 0000000000d0c104 /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::Director::drawScene()+136)(9e896cf2715478e661994ec045a9309af5781f29)
#10 pc 0000000000d10034 /data/storage/el1/bundle/libs/arm64/libnativerender.so(cocos2d::DisplayLinkDirector::mainLoop()+72)(9e896cf2715478e661994ec045a9309af5781f29)
#11 pc 0000000000c09778 /data/storage/el1/bundle/libs/arm64/libnativerender.so(PluginRender::timerCb(uv_timer_s*)+64)(9e896cf2715478e661994ec045a9309af5781f29)
#12 pc 00000000000143c0 /system/lib64/platformsdk/libuv.so(uv__run_timers+48)(9cdd4d98858371ef8396cefa185af742)
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS ets层传递Array<string>到C++层,C++层如何获取数组内容
89浏览 • 1回复 待解决
HarmonyOS ArkTs和C++实时通信
192浏览 • 1回复 待解决
HarmonyOS C++ 调用 ets 层函数报错闪退
46浏览 • 1回复 待解决
ArkTS层通过接口访问C++层对象
389浏览 • 1回复 待解决
HarmonyOS native C++ 层传递buffer 到ArkTS 层
65浏览 • 1回复 待解决
将C++层分配的对象在ArkTS层管理,ArkTS层通过接口访问C++层对象业务
950浏览 • 1回复 待解决
ts给c++传递数组,c++层如何解析
1941浏览 • 1回复 待解决
HarmonyOS 从C++层触发通知到ArkTS层
113浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
436浏览 • 1回复 待解决
XComponent的onLoad和C++层的onSurfaceCreated的时序关系
1724浏览 • 0回复 待解决
HarmonyOS 如何在ArkTS中向C++层注册回调,C++层如何调用回调方法?
234浏览 • 1回复 待解决
需要提供c++到js通信demo
625浏览 • 1回复 待解决
有人知道在Stage 模型下ArkTS怎么和C++通信吗?
2190浏览 • 0回复 待解决
HarmonyOS commonEventManager 在C++层有接口吗?
74浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
1095浏览 • 1回复 待解决
HarmonyOS C++层自定义组件如何开发?
349浏览 • 1回复 待解决
HarmonyOS C++和ArkTS交互
28浏览 • 1回复 待解决
鸿蒙NAPI机制具体的执行过程,如何实现js和c++通信的
13428浏览 • 1回复 待解决
HarmonyOS C++层如何同步调用JS函数 -
62浏览 • 0回复 待解决
HarmonyOS native层从C++到JS层传图片数据,过大失败
448浏览 • 1回复 待解决
有没有从ts设置回调到c++层,然后c++再回调到ts的示例代码?
1059浏览 • 1回复 待解决
HarmonyOS开发c++层那里socket支持epoll方式吗?
401浏览 • 1回复 待解决
HarmonyOS Native层c++ socket(tcp通信)开发有示例吗? 比如设置无阻塞形式,出错后错误码等等
21浏览 • 1回复 待解决
ArkTS 中的 HashMap 对象传给 C++ 层,如何转换?
232浏览 • 1回复 待解决
HarmonyOS C++通过OHAudio录制音频想回调数据到ArkTS层
38浏览 • 1回复 待解决
1)关于cocos2d-x在WorkerThreads线程上运行是否有隐患,需要检查下是否试图在WorkerThreads线程上直接操作UI控件。
2)注意到崩溃日志中多次出现了:
是否使用了napi_add_env_cleanup_hook函数?
解决方案
一旦当前Node.js环境退出,将fun注册为要使用arg参数运行的函数。可以使用不同的arg值安全地多次指定一个函数。
在这种情况下,它也会被多次调用。不允许多次提供相同的fun和arg值,否则会导致进程中止。
该函数的使用方法参考:https://nodejs.cn/api/n-api.html#napi_add_env_cleanup_hook