2.x 引擎中的 Cocos2dxActivity 的 onDestroy 方法会直接把进程给杀死,的确没有处理资源的释放流程。
你是注释掉杀进程,然后发送消息给 native 去销毁 AppDelegate 么?
Log.d(TAG, "Cocos2dxActivity onDestroy: " + this + ", mGLSurfaceView" + mGLSurfaceView);
if (mGLSurfaceView != null) {
Cocos2dxHelper.terminateProcess();
}
ScriptEngine 是单件,它的构造和析构会对 v8 platform 做初始化和释放的操作,v8 platform 的初始化只能在一个进程初始化一次,所以释放 ScriptEngine 的时候不应该去调用 ScriptEngine::destroyInstance,而应该直接调用 ScriptEngine::getInstance()->cleanup()