app从后台回来后黑屏,日志上会有大量这个,是引擎的问题吗?
E/cocos js error:(12880): line:0 msg:too much recursion
从日志中无法判断,只能确定 JS 层发生了递归调用导致调用栈溢出,需要具体描述一下重现方法和表现
三星s7和华为mate8真机,当在游戏内点击出现了友盟分享列表后(接入的友盟sdk),按Home锁屏切出,然后再切入就出现了这个问题,app闪退了(或表现为黑屏),如下是相关错误日志,出现大量:
11-01 19:49:04.991: E/cocos js error:(21589): line:0 msg:too much recursion
这个帖子也有同样的问题
http://forum.cocos.com/t/cocos-js-error-3822-no-filename-filename-line-0-msg-too-much-recursion/39960
creator1.2.2
和安卓的版本有关么,华为和三星的的稍低端的机器都可以
这个问题大致是因为什么原因呢,求助@panda
jsb_polyfill.js的21589行代码段如下,是spine相关的:
setAnimation: function(trackIndex, name, loop) {
if (this._sgNode) {//21589
var res = this._sgNode.setAnimation(trackIndex, name, loop);
return res;
}
return null;
},
21589是这个意思么?
这种报错信息,应该怎么定位呢?
21589 应该不是对应的行数,你的友盟分享有没有在原生层调用 JS ?
友盟分享在原生层没有调用js,但是在切出切入时,在原生层调用js了,不是这个情景的时候,切出切入没有问题。
附件是logcat日志。locat-2016-11-01-19-48-01.txt.zip (167.7 KB)
和机器的品牌无关,安卓6.0的机器都有这个错误问题
我不确定是不是跟音频有关,不过你可以尝试先注释所有的音频播放,然后再尝试一下,如果没有问题,就说明是恢复游戏运行过程中,音频恢复出现问题了
现在在华为荣耀v8和mate8上测试。
(不测试弹出分享列表这个场景),只测试进入游戏后切出、再切入,就报同样的错了。
在切出切入时有个java调用js,把这两处注释掉后,也有这个错误。
下面是注释掉java调用js后的log日志,正常的切出切入。
AudioPolicyManager(3358): checkAndSetVolume,这个和cocos有关么?
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 4 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 7 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 7 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 15 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 6 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 7 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 7 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 7 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 15 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 15 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 15 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 1 device 0x2
11-06 22:56:06.944: I/APM::AudioPolicyManager(3358): checkAndSetVolume: index 15 device 0x2
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
11-06 22:56:06.944: E/cocos js error:(32318): line:0 msg:too much recursion
测试有时又不报错了,手里没有这个类型的真机,用的云真机测的,反反复复的结果
友盟分享弹出后,切出切入黑屏的问题,找到解决办法了。
之前用的云真机测试的特殊机型,云真机的反应不靠谱,给出了这个错误日志。
拿到真机后,经过测试,发现只是黑屏,并没有闪退。
友盟分享弹窗是一个popupwindow,在某些机器上,这个场景会有黑屏现象,同型号的机器表现也不同。
黑屏原因是弹窗先恢复了,但是阻塞了游戏,游戏应该是暂停状态。
这个和第三方sdk和cocos的activity代码逻辑应该都有关系。
我把这个问题绕过去了,切出后主动关闭,切入后再打开一个新的。
感谢panda的关注和解答。
切出后是关闭什么,切入后再打开什么,能说的详细点么,我也遇到了这个问题呢

