Android原生app中嵌入Cocos Creator做的游戏页面,第二次打开游戏页面时app崩溃

需求:在Android原生app中嵌入一个Cocos Creator做的游戏页面,点击原生页面的一个按钮时打开这个游戏页面。
问题:点击原生页面的按钮打开游戏页面,再关闭游戏页面,再次点击按钮打开游戏页面时app崩溃。
Cocos Creator版本:2.4.0

本人安卓原生开发,不太了解Cocos开发,公司需要开发一款app,其中一个页面是Cocos Creator做的游戏页面,并且和原生有交互,比如需要调起原生的登录页面,登录成功后需要更新游戏页面的用户信息之类的。
刚开始时打开游戏页面第一次关闭游戏页面app就会关闭,看了代码发现在Cocos2dxActivity的onDestroy()方法中会调用Cocos2dxHelper.terminateProcess()把当前进程kill掉,所以app就会关闭。



把Cocos2dxHelper.terminateProcess()注释掉后,第一次关闭游戏页面app不会关闭,但第二次打开游戏页面时app崩溃,报如下错误:

猜测崩溃的原因可能是第一次关闭游戏页面时有些资源未释放,参照这篇博文:https://www.codenong.com/js6f4c7f71ce03/ 修改了引擎,用如下代码退出cocos:
exitGame() {
cc.director.pause();
cc.audioEngine.stopAll();
if (cc.director.isPaused()) {
cc.director.end();
}
}
构建、编译cocos,运行安卓项目,第一次关闭游戏页面时还是崩溃,报同样的错误:

有考虑过用多进程,把游戏页面运行在单独的游戏进程中,关闭游戏页面时kill掉游戏进程,这样就可以解决资源释放问题,app也会不崩溃。但用多进程的话就需要跨进程和原生交互,有许多不便,并且后续如果同一页面中即有cocos又有原生控件,交互越来越复杂时,跨进程交互会非常麻烦。安卓还可以用多进程,但iOS怎么解决?
比较优雅的方案是原生和cocos在同一进程中,把cocos做为一个控件显示在原生页面中,关闭cocos时释放资源,而不是简单粗暴的kill进程。
请问大家有没有碰到过这样的问题,解决方案有哪些?欢迎大家一起来讨论,先谢过了!

可以导出web-mobile, 存放到asset目录, 使用webview来加载, 使用webview的交互方式

否则还是需要使用多进程来加载,不然问题很多

非常感谢!但用webview的话性能会不会有影响?还有就是应用商店的审核会不会不通过?因为app的功能比较简单,应用商店可能会以简单应用的理由拒绝

安卓还有多进程来解决,但iOS就不能了,头大 :sweat:

为什么要原生页面,你这种情况使用大厅加子游戏的形式就行了

官方引擎大佬可以解答下吗?

看游戏类型,基本性能差不多

遇到了类似的问题,有找到解决的办法了么?

也遇到同样的需求了,大佬们,有解决方案吗?

did you found any solution so far , I am getting the same problem.

到目前为止你有什么解决办法吗?

Hey, have u got any solution, Please help. !!

请问,大佬解决了么,求求了 1106401883