Cocos js error:(2755): <no filename="filename"> line:0 msg:too much recursio

android java调用js的方法,报如下错误

cocos js error:(2755): line:0 msg:too much recursio

代码如下:

			Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable() {

				@Override
					public void run() {
					Cocos2dxJavascriptJavaBridge.evalString("cc.sixi.anysdkMgr.onLoginResp('" + code + "')");
					Log.e("WXLogin", "回调 code = " + code);
					app.finish();
					}
				});

引擎是什么版本?那个code的内容是什么?

cocos用的1.4.0的,code是个字符串,这个问题其实就是下面这个问题:

android接入微信登录,授权成功后,回调js脚本方法报错
授权成功后回到游戏的activity,回调js的方法,报如下错误:
line:0 msg:too much recursion

cc.sixi.anysdkMgr.onLoginResp这个方法本身的实现是怎么样的?从错误的信息来看,应该是出现了死循环一直递归调用,比如自己调用自己。

cc.log 打印没有处理 对象互相引用导致无限嵌套的BUG 这个自己修改下源代码可以解决

onLoginResp: function (code) {
cc.director.loadScene(‘loadingGame’);
}

只是切换了一下场景

具体能说一下修改哪块么,刚接触这个,还不熟悉

这个回调方法里的cc.log都没有输出

贡献一个我自己用的trace方法:

window.trace=function(info){

    if (Utils.debug == false) return;

    if (info == null) info == "null";
    var infoType = typeof (info);
    if (infoType == "object" ) {

        var seen = [];
        info = JSON.stringify(info, function (key, val) {
            if (typeof val == "object") {
                if (seen.indexOf(val) >= 0) return;
                seen.push(val)
            }
            return val;
        });

    } else if (infoType == "number") {
        info = info ;
    } else if (infoType == "boolean") {
        info = info ;
    } else if (infoType == "function") {
        info = info.toString();
    }
     console.log(info+"");
    //cc.log(info+"");
};

可能真是我手机的问题,我在模拟器上是可以输出log的,我试了好几个真机,都无法输出log

无法输出LOG 那是另外一回事 那是你手机本身没打开日志输出的低等级日志输出。 如 V, W ,D 如果可以输出Log.e()的内容 那 肯定是手机没设置好 你百度就可以找到怎么设置手机了。。一般是*#____#*这样的代码

这个具体是什么问题?能说详细一点吗?
@panda 这个是潜在的错误。

JSON 死循环BUG 具体复现的例子很难找到。。。
等以后遇到了再说吧 也不是啥大问题 也许还不是cc.log的问题 (时间太久 记忆有点模糊了)