cc.game.restart()连续执行2-50次,必然崩溃。(creator 2.4.2)

2020-11-10 13:07:30.403 16492-16668/com.kaka68.xxjjc D/jswrapper: JS: cc.sys.os Android
2020-11-10 13:07:30.407 16492-16668/com.kaka68.xxjjc D/jswrapper: JS: -----------------------------------------GameData.sdk_channel 1000000
2020-11-10 13:07:30.407 16492-16668/com.kaka68.xxjjc D/jswrapper: JS: -----------------------------------------qq != object
2020-11-10 13:07:30.407 16492-16668/com.kaka68.xxjjc D/jswrapper: JS: -----------------------------------------wx != object
2020-11-10 13:07:30.407 16492-16668/com.kaka68.xxjjc D/jswrapper: JS: 渠道号:8000001
2020-11-10 13:07:30.408 16492-16668/com.kaka68.xxjjc D/jswrapper: JS: 设置服务器连接 ws://test.kaka68.com:12346
2020-11-10 13:07:30.937 16492-16668/com.kaka68.xxjjc A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 16668 (GLThread 30512), pid 16492 (om.kaka68.xxjjc)

进第一个场景之前必然崩溃,连续运行restart()2-50次的情况下。
android版本。

正在自我排查中。脚本一个一个去掉。没有挂其他脚本正常。

2020-11-10 14:34:00.609 18900-19007/com.kaka68.xxjjc I/chatty: uid=10714(com.kaka68.xxjjc) GLThread 30742 identical 1 line
2020-11-10 14:34:00.659 18900-19007/com.kaka68.xxjjc D/jswrapper: ScriptEngine::cleanup begin …
2020-11-10 14:34:00.659 18900-19007/com.kaka68.xxjjc D/jswrapper: GC begin …, (js->native map) size: 56, all objects: 263
2020-11-10 14:34:00.681 18900-19007/com.kaka68.xxjjc D/jswrapper: GC end …, (js->native map) size: 38, all objects: 240
2020-11-10 14:34:00.681 18900-19007/com.kaka68.xxjjc D/jswrapper: GC begin …, (js->native map) size: 38, all objects: 240
2020-11-10 14:34:00.697 18900-19007/com.kaka68.xxjjc D/jswrapper: GC end …, (js->native map) size: 38, all objects: 240
2020-11-10 14:34:00.701 18900-19007/com.kaka68.xxjjc D/jswrapper: GC begin …, (js->native map) size: 0, all objects: -1
2020-11-10 14:34:00.701 18900-19007/com.kaka68.xxjjc D/jswrapper: Function object is released!
2020-11-10 14:34:00.701 18900-19007/com.kaka68.xxjjc D/jswrapper: GC end …, (js->native map) size: 0, all objects: -1
2020-11-10 14:34:00.812 18900-19109/com.kaka68.xxjjc A/libc: Fatal signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x5 in tid 19109 (V8 DefaultWorke), pid 18900 (om.kaka68.xxjjc)

restart()新错误出现

要用华为3000元以上手机测试,运行快。restart 1分钟执行60-100次。容易崩溃

2020-11-10 14:42:56.329 20975-21293/com.kaka68.xxjjc A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 21293 (GLThread 30747), pid 20975 (om.kaka68.xxjjc)
2020-11-10 14:42:56.830 20975-20975/com.kaka68.xxjjc D/Cocos2dxActivity: onPause()
2020-11-10 14:42:56.830 20975-20975/com.kaka68.xxjjc V/MicroMsg.SDK.WXApiImplV10.ActivityLifecycleCb: org.cocos2dx.javascript.AppActivity onActivityPaused

一直运行这个脚本,启动场景挂一个这个脚本。就基本上会崩溃(android)

新建一个空项目试试,不要接入任何第三方的sdk。

结果一样,只是restart 次数多少而已。差的机器,很慢那种。运行十来分钟也是会崩溃。好的机器特容易崩溃。
类似于 好的android手机,cc.game.restart() 两次就有可能崩溃。app闪退。

其实也是为了实现,把其他项目 热更下载下来。修改热更读取路径切换游戏。公司非要用这种,只是为了首次下载快一点,我很头疼。
我个人比较喜欢用远程包模式。只是会限制文件夹和公共文件。但是效果特别好。自己做个native文件的MD5校验,即可。
偷懒的话,直接删除本地保存的对应游戏的 native。编辑器这边会默认去下载。

1赞

资源不会多次下载。编辑器会自己生成资源文件的md5本地文件名对应.
只要你远程文件变化了,MD5就是会变。都是要下载变了的md5.

个人感觉远程包,是最好的突破口。热更子游戏,秒进。

热更都不要,那最好。编辑器其实自己可以去校验。只是他们不做而已。

重启几率闪退是老毛病了。貌似就没好过。

你们热更是怎么做的?两个工程 分开开发,一个大厅一个游戏这样

为啥要执行那么多次重置?

测试稳定性。两个项目的热更文件切换加载

不能保证稳定性,只能下载整包了。

有可能是这个问题,我在研究
游戏中是不是使用了 setTimeout 或者 setInterval ?在哪里使用的?能不能尝试在重启之前取消之前开始的计时器?


2020-11-10 16:44:40.493 2999-3121/com.kaka68.xxjjc A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 3121 (GLThread 31233), pid 2999 (om.kaka68.xxjjc)

太过分了,跟定时器无关。就一个脚本,啥也没有了。还是崩溃

restart 百来次。。。