engine-native
engine-native copied to clipboard
v8 reinit cause crash
Cocos Creator 2.4.2 ScriptEngine::init() _isolate = v8::Isolate::New(_createParams);
after exit cocos, then enter cocos again, crash on above line。It seams some incorrect use of Allocator!!!
我也遇到这个问题了,原生app集成cocos,二次启动就这个错误,请问有解嘛?
v8::platform::NewDefaultPlatform().release();
v8::V8::InitializePlatform(_platform);
v8::V8::Dispose();
v8::V8::ShutdownPlatform();
不需要多次执行, 从 scriptEngine 中抽出来
楼上正解,但是重新初始化有黑屏现象,你们有嘛? @PatriceJiang
我们目前退出时没做释放,第二次进入直接获取之前的 v8 使用。没有遇到黑屏问题
楼上能给个 demo 看看吗
不释放V8,会导致V8一直在后台运行,占用内存和线程资源 如果不是纯游戏的APP,应该释放V8 目前也遇到这个问题,还没找到解决办法
楼上能给个 demo 看看吗
不好意思,最近才看到这里的消息。我截了屏可以参考下 cc @wdx700
除此之外,v8 占用的内存不多
其中两个个文件的修改,按截屏顺序看
-
cocos/bindings/jswrapper/v8/ScriptEngine.cpp
-
cocos/bindings/jswrapper/v8/ScriptEngine.h
楼上能给个 demo 看看吗
不好意思,最近才看到这里的消息。我截了屏可以参考下 cc @wdx700
除此之外,v8 占用的内存不多
其中两个个文件的修改,按截屏顺序看
cocos/bindings/jswrapper/v8/ScriptEngine.cpp
cocos/bindings/jswrapper/v8/ScriptEngine.h
我们是自己改了Cocos的代码,封装成View方式加载cocos动画,退出页面时改cocos代码释放掉v8 engine
然后再次进入,第二次Initialize v8 engine,之后就会遇到崩溃
art_sigsegv_fault 0x0000007c07a7c2e8
art::FaultManager::HandleFault(int, siginfo*, void*) 0x0000007c07a7c7fc
art::SignalChain::Handler(int, siginfo*, void*) 0x0000005619525e54
重复初始化是会有问题的,所以不建议重复初始化。可参考上面的截图,改造支持下 @wdx700
重复初始化是会有问题的,所以不建议重复初始化。可参考上面的截图,改造支持下 @wdx700
你好, 请问除了这里修改还需要改其他地方吗, 目前我们第二次进去还是会遇到黑屏的问题, 报错信息如下
2022-09-21 18:45:50.791 30276-30846/org.cocos2d.demo D/cocos2d-x: find in flash memory dirPath(/data/data/org.cocos2d.demo/files/temp)
2022-09-21 18:45:51.131 30276-30846/org.cocos2d.demo D/jswrapper: JS: Cocos Creator v2.4.9
2022-09-21 18:45:51.461 30276-30846/org.cocos2d.demo D/jswrapper: JS: InitScene: 4.0090000000000146ms
2022-09-21 18:45:51.461 30276-30846/org.cocos2d.demo D/jswrapper: JS: AttachPersist: 0.6080000000001746ms
2022-09-21 18:45:51.461 30276-30846/org.cocos2d.demo D/jswrapper: JS: AutoRelease: 0.875999999999749ms
2022-09-21 18:45:51.461 30276-30846/org.cocos2d.demo D/jswrapper: JS: Destroy: 0.06400000000030559ms
2022-09-21 18:45:51.811 30276-30846/org.cocos2d.demo D/jswrapper: JS: Activate: 343.56600000000026ms
2022-09-21 18:45:51.871 30276-30846/org.cocos2d.demo I/Adreno-ES20: <validate_vertex_attrib_state:61>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call!
2022-09-21 18:45:51.871 30276-30846/org.cocos2d.demo I/Adreno-ES20: <validate_vertex_attrib_state:61>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call!
2022-09-21 18:45:51.871 30276-30846/org.cocos2d.demo I/Adreno-ES20: <validate_vertex_attrib_state:61>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call!
2022-09-21 18:45:51.871 30276-30846/org.cocos2d.demo I/Adreno-ES20: <validate_vertex_attrib_state:61>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call!
2022-09-21 18:45:51.911 30276-30846/org.cocos2d.demo I/Adreno-ES20: <validate_vertex_attrib_state:61>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call!
2022-09-21 18:45:51.911 30276-30846/org.cocos2d.demo I/Adreno-ES20: <validate_vertex_attrib_state:61>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call!
2022-09-21 18:45:51.911 30276-30846/org.cocos2d.demo I/Adreno-ES20: <validate_vertex_attrib_state:61>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call!
在退出时释放下DeviceGraphics这个单例对象就可以修复iOS的黑屏问题.Android目前我们用的是新进程的方式规避的.