2.0.8 bug汇总

我就等209了!!!!

目前只有荣耀9进行测试,audioSource的问题没有复现问题。会继续关注这个问题,如果复现并修复再过来更新。

谢谢回复,目前还有一个比较严重的问题

我们游戏的线上版本,会疯狂的收到如下错误【大概每5分钟20条】,有点头疼

SyntaxError
line:141,column:83205,SyntaxError: Unexpected token ‘)’ Stack:[native code]
evaluateScriptFile@https://lib/WAGame.js:1:83205
value@https://lib/WAGame.js:1:185838
value@https://lib/WAGame.js:1:184984
https://lib/WAGame.js:1:1904642
b@https://lib/WAGame.js:1:187851
https://lib/WAGame.js:1:190378
u@https://lib/WAGame.js:1:2489
L@https://lib/WAGame.js:1:190300
https://lib/WAGame.js:1:653823
global code@https://lib/WAGame.js:1:653828

谢谢回复,目前还有一个比较严重的问题

我们游戏的线上版本,会疯狂的收到如下错误【大概每5分钟20条】,有点头疼

详情见下面的回复

据说是 iOS9.3.5 才会出现 堆栈信息请看我上面的回复

相关帖子:
https://forum.cocos.com/t/2-1-0-2-0-7-iphone-6s-ios-9-3/73031/5

我们在做内存优化的时候还发现了如下的问题

一、释放spriteframe和加载clip 同时发生时导致的问题

1.调用cc.loader.loadRes 加载clip动画 假设这个clip使用了A,B,C三个图片
2. 在之后的同一帧 调用cc.loader.relase掉图片B
3.loadRes 回调成功,而不是error,此时动画如果更新到图片B 就会挂在render处,因为使用了已经被释放的spriteframe

【或者是1和2步骤倒过来】

二,同样是释放图片的问题导致,但是必现重现方式未知,表现是在requestAnimationFrame时,oldFrame.off之后报错,原因是oldFrame已经被消耗,

这个错误我尝试修改引擎CCSprite.js 新增一句 && oldFrame.isValid 可以暂时解决
_applySpriteFrame: function (oldFrame) {
if (oldFrame && oldFrame.off && oldFrame.isValid) {
oldFrame.off(‘load’, this._onTextureLoaded, this);
}

顶楼主

这个问题尝试打包的时候选择调试模式重新打包,然后再进游戏看看。

这两个问题等周一上班时会再确认问题。

我手头暂时没找到iOS9.3.5 版本~~ 只是微信后台收到很多这个错误

谢谢! 我们还有主流的错误如下,我们不知道这两者有无关联

后台收到的错误日志
1.
https://usr/game.js:3: TypeError: Cannot read property ‘__ONCE_FLAG:load’ of null

2.100.00% null is not an object (near ‘…t._spriteFrame.uv;m[d+2]=y[0],m[d+3]=y[1…’);at requestAnimationFrame callback function
fillBuffers@https://usr/game.js:3:643739
_commitComp@https://usr/game.js:3:653298
_render@https://usr/game.js:3:596226
_color@https://usr/game.js:3:595924
_updateRenderData@https://usr/game.js:3:596161

其他还有几个也是渲染相关的。。。

引发的原因是因为我释放了spriteFrame,但是我们是释放是基于引用计数了,而且使用计数部分的资源,我们这两天做了仔细的检查,目前没有发现问题,我们的规则是,对于cc.loader的加载的资源 进行引用计数 getDependsRecursively 对该资源所有依赖分别计数,在收到微信内存警告的时候,释放其中计数为0的部分

对于第二个堆栈,查看源码,发现只有simple.js有 _spriteFrame.uv 这个代码,目前有点迷茫

@337031709

SyntaxError
line:24,column:83205,SyntaxError: Unexpected token ‘>’ Stack:[native code]
evaluateScriptFile@https://lib/WAGame.js:1:83205
value@https://lib/WAGame.js:1:185965
value@https://lib/WAGame.js:1:185111
https://lib/WAGame.js:1:190591
b@https://lib/WAGame.js:1:187978
https://lib/WAGame.js:1:190505
u@https://lib/WAGame.js:1:2489
L@https://lib/WAGame.js:1:190427
https://lib/WAGame.js:1:678873
global code@https://lib/WAGame.js:1:678878

目前这个错误已经成为我们的主流错误,确实光这个堆栈不好排查,迷茫中,微信工具es6转es5也试过了 不能解决

这个问题,你打包微信小游戏工程时打开调试模式构建发布,然后跑一下会不会出现这个问题。
之前有个用户的项目是因为构建发布时代码压缩后代码在微信端跑不起来,出现这个问题。

你反馈的这个问题没有被我复现,问题还在么?

已经fix了哈 必须每次都重新勾选微信端工具的ES6转ES5 因为2.0.8版本libs/ 下的js代码有使用到es6特性,而creator没有转换这些文件

我在2.0.9上没有复现出这个问题,你可以升级试试,或者给我一个你的测试demo。

嗯嗯 我们正在测试观察2.0.9 版本 线上版本还不太敢发布

我们也遇到这种报错,主要是在个别机型上,目前最多的是iphone 6s总是报这个

我勾选了es6转es5这个也不行,还是报这个错