cocos creator 2.0.6 版本在安卓中退出后再重新进入游戏时崩溃

目前我使用的是cocos creator 2.0.6 版本 关闭游戏时,调用了一个在v2.0.0版本时在jnilmp.cpp中的这个方法,当时v2.0.0时是可以的。但更新到2.0.6版本后这个方法不存在了。我就复制了一下。
JNIEXPORT void JNICALL Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeFinish(JNIEnv* env, jobject thiz)
{
g_isGameFinished = true;

    g_app->getScheduler()->removeAllFunctionsToBePerformedInCocosThread();
    EventDispatcher::destroy();
    se::ScriptEngine::getInstance()->cleanup();
    cocos2d::experimental::AudioEngine::end();

}
但调用后,再次进入游戏就会出现崩溃。崩溃时提示如下
E/v8: #
# Fatal error in …/…/src/isolate.cc, line 2360
#
Check failed: thread_data_table_.
#

Build fingerprint: ‘Xiaomi/clover/clover:8.1.0/OPM1.171019.019/V9.6.7.0.ODJCNFD:user/release-keys’
Revision: ‘0’
ABI: ‘arm’
pid: 3481, tid: 3619, name: GLThread 220 >>> org.cocos2d.gametestnew <<<
01-07 23:13:01.175 3634-3634/? A/DEBUG: signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0xd3624cee
r0 00000000 r1 00004001 r2 00000000 r3 00000001
r4 f03b36e0 r5 d45de9a4 r6 d40bc7f0 r7 00000938
r8 d411c338 r9 00004764 sl 00004758 fp 0000474c
ip f03b162c sp d45de978 lr d3623ef1 pc d3624cee cpsr 800f0030
01-07 23:13:01.179 3634-3634/? A/DEBUG: backtrace:
#00 pc 0045fcee /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so
#01 pc 0045eeed /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so
#02 pc 00be2c47 /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so
#03 pc 009fe1e5 /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so
#04 pc 00658110 /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so (se::ScriptEngine::init()+376)
#05 pc 0065923c /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so (se::ScriptEngine::start()+44)
#06 pc 003dd718 /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so (AppDelegate::applicationDidFinishLaunching()+272)
#07 pc 003e1f47 /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so (cocos2d::Application::start()+18)
#08 pc 00401799 /data/app/org.cocos2d.gametestnew-ohx1C6KEr9YOvLbcqXHq0Q==/lib/arm/libcocos2djs.so (Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit+200)

我跟踪到的崩溃的准确位置是在
/Applications/CocosCreator.app/Contents/Resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8/ScriptEngine.cpp中的
se::ScriptEngine::init()这个方法中的

_isolate = v8::Isolate::New(_createParams);

这个new方法时,就会发生崩溃。为什么?求解决方案。

结贴,不再纠结是为啥造成的了。用最暴力的方法解决关于了解决原生项目中使用cocos creator 搭建游戏模块后结束再进入的问题。这个暴力方案就 android:progress 多进程。

妈诶,碰到同样的问题了~但是我们无法通过多进程解决

@jare救救孩子吧,真的很头痛

第二次启动游戏运行到 isolate = v8::Isolate::New(createParams);这一句之后崩溃 @jare

@panda

@leda大佬求救

求救 还是有这个问题

我也遇到了,iOS怎么办?实在不想用多进程

++++111111怎么解决

同求,我这里是2.4.2,按照2。0以前的版本方法修改无法生效,遇到的问题和楼上一样,V8无法重建@jare@panda

楼主的多进程,cocos activity 关掉的时候,把 cocos 进程直接 kill 掉,第二次重开。不 ok 吗

大佬,我们这边的需求是要仿照TT语音的样子,所以多进程被pass了,原因如下。
第一,TT语音打开游戏的时候,后台并没有多出一个游戏窗口,说明没开多进程。
第二,我们需要在现成的Native直播间里,打开游戏,这就包含了直播间本来的很多功能,送礼物等,所以开个多进程的话,无法复用已经存在的直播房间的功能,就需要在游戏上面重新做一套了,很麻烦。

大佬,最终解决了吗?能留个联系方式吗?我qq:501045475,谢谢。。。

大佬,问题解决了吗,方便沟通一下吗?万分感谢,:pray:

我从241换成了213版本解决了

2。4版本修改引擎第二次进入黑屏但可以操作,opengl的东西没回来可能是

请问下,大佬,你修改引擎改哪里了啊。。。。方便透露一下吗。。。

记不太清了,主要好像这样:

  1. 在ccdirector的主循环里,一开始那个判断是否要清理的逻辑里,加上close(),这个会导致c++部分的销毁
    2.在c++销毁那里,把销毁scriptENgine对象的那一句注释掉

v8引擎是不建议销毁自己的,印象中哪个文档里写着类似的建议,说不建议销毁v8,即便我不被销毁也不会占用很多资源