3.7.3 game.restart() 崩溃

  • Creator 版本: 3.7.3

  • 目标平台: Android / 模拟器

  • 重现方式:调用cc.game.restart()

  • 首个报错:

  • 之前哪个版本是正常的: 3.6.3

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统: 原生平台Android

  • 重现概率:百分百



应为程序内容比较多,调用了,game.restart()后,大概3分钟左右,百分百崩溃。具体原因不明

@jare websocket 在启用后, 调用game.start() 在进入游戏,会调用socket关闭释放,这里会崩溃,百分百

restart 之后会先 close websocket ,之后游戏崩溃么?

我自己关闭websocket 没事,但是restart,重新接入游戏,然后连接上了websocket 过了一会儿,程序自己也调用了一次websoket关闭,然后就是上面的注释,v8里面调用了websoket释放,在delete 自己的时候闪退了,同样的代码3.6.3没有问题也是报同样的上面的websocket关闭,但是不闪退,我对比了以下代码

多了这行,注释后好像就不闪退了,

因为是公司项目,如果需要提供demo,我可以给你们提供远程协助

具体的操作步骤是?本地测试没复现

就是websoket 链接的时候,调用game.restart()。 重新连接上websoket,大概过了2分钟,会调用websoketclose 上面的日志有

当打印这个日志的时候就会崩溃,百分百3.6.3 也有这个打印,但是没有崩溃,3.7.3百分百崩溃

手机放着半个小时都没复现,也没有显示这个日志。
测试步骤:

  1. websoket 连接成功;
  2. 调用 restart;
    没有做额外的处理

是因为我自己调用了手动关闭websoket?,然后game.restart(),自己也调用了一次嘛?

你可以在restart()的时候调用websoket 关闭,然后在调用restart()

测试了也没复现,方便整个简单的复现 demo 不?

东西太多了,不太方便弄,如果有需要,我可以提供远程

你手动创建一个新工程,实现你以上操作把。需要延迟的就settimeout延迟一下 :joy:
我也刚弄了一个龙骨的demo给官方,弄了我半小时,稳定复现5个bug,头晕 :crazy_face:

我还是用3.6.3把,后面再看不敢更新

确实。知道官方做新特性是为了给投资者负责,但是还是希望弄一个LTS版本对广大开发者负责,不要更新特性,只修复bug。以年为单位维护就行了 :crazy_face:

2赞

你好. 麻烦你最好是能提供个demo给我这边做近一步的排查, 实在不便的话您私信我通过远程调试一下也可以

已经私信了哈

该问题会修复在3.8. 可以参考pr: https://github.com/cocos/cocos-engine/pull/15281

3.7.4也加上吧?

好像是3.8.0 加 3.7.4 不加