org_cocos2dx_lib_Cocos2dxRenderer_nativeInit 崩溃分析

你还,在java里要怎么调用 ScriptEngine 得方法。这个好像是c++得方法。我们得项目也遇到这个问题了。友盟收集了很多崩溃信息,大概1-3%得用户进去一会儿就崩溃了。

这个崩溃确实还是一直存在

这个问题在 2.x 引擎里面有PR吗

解决什么问题的 PR ?

感谢大佬回复,更详细的描述,我在github上创建了一个 issue,大佬有空帮忙看看~

看到了,由于时间有限,如果很容易出现,麻烦提交一个 demo 上传到 github,我们安排跟进一下。

都补充好到issue上了~

1赞

很好,描述很详细,点赞。

1赞

初步排查,这个问题只在 android 15 上出现,应该是 android 15 的 isTaskRoot 的行为发生了变化导致的。

可以这样修复:

Cocos2dxHelper.java

    public static void endApplication() {
 // --> 下面这两行注释掉
//        if (sActivity != null)
//            sActivity.finish();

// --> 添加如下这行:
        terminateProcess();
    }

在 2.4.16 中修复:

1赞

这可能是目前的一个最快的解决办法,但是可能会有一些隐患,因为这种直接杀进程的办法,是不会触发生命周期的回调,比如 onPause onStop onDestroy,不过目前来看,确实是能解决崩溃

旧代码退出流程: finish -> onDestroy -> terminateProcess

在 onDestroy 中要处理的事情,如果同步的还好,如果是异步的(比如网络请求),也不会被执行,因为 onDestroy 后面马上就杀进程了。

实操,这样修改后打包上线还是有奔溃问题

请问你们是否可以本地设备上复现?

请问合并修复 pr 后是否还会出现此问题?

cc.game.end造成的二次打开崩溃问题可以解决。
还会有部分手机android15,用系统返回键退出,也概率性导致二次打开的时候闪退。

明白,这个情况我们再测试一下。

部分手机是指哪些品牌手机?麻烦提供下。

没有了,123123