<no filename="filename">:0:too much recursion错误

在 xhr.onreadystatechange = function () {里执行了一个定时器,定时器的回调函数也是在这里定义的,
模拟器中运行没有问题,但是在真机上native方式运行报错:
:0:too much recursion

iphone6

解决了,回调函数里有一个事件注册的变量名字写错了。

和从服务器端获取的图片大小有关,我显示的广告大小为30050,然后根据服务器端返回的数据做scale缩放,出错的图片大小为1024768。
为什么图片大了后,会报这个错误呢?
代码片段为:
picUrls[i][‘texture’]=texture;
var frame=new cc.SpriteFrame(texture);
sprite.spriteFrame=frame;
var scalex=300/texture.width;
var scaley=50/texture.height;
console.log(‘scalex:’,scalex,‘scaley:’,scaley);
sprite.node.scaleX=scalex;
sprite.node.scaleY=scaley;
@jare

如果没有缩放就没这个错误吗?
怀疑是因为图片从服务器加载的缘故。能不能尝试下在 js 中直接 cc.loader 加载一个图片并且显示出来,不做缩放?

还是有这个错误,和缩放无关,回调也没打日志,直接报的那个错误
cc.loader.load(picUrls[i].pic,function (err, texture) {
console.log(‘pic url:’,picUrls[i].pic);
console.log(‘err:’,err);
if(texture!=null){
console.log(‘ad:’,texture,texture.width,texture.height);
picUrls[i][‘texture’]=texture;
var frame=new cc.SpriteFrame(texture);
sprite.spriteFrame=frame;
var scalex=300/texture.width;
var scaley=50/texture.height;
console.log(‘scalex:’,scalex,‘scaley:’,scaley);
//sprite.node.scaleX=scalex;
//sprite.node.scaleY=scaley;
}
})

我把图片地址私信给你啦,帮忙看看哈,自己实在是不知道什么原因,多谢:)@jare

这个问题我们已记录下来了,怀疑是底层 loader 的 bug,多谢反馈!

多谢jare:)

我用的cc.loader.load加载服务器端图片,在安卓真机上运行,用的IP地址端口方式,ip地址形如a.b.c.d,但是为什么被解析为了d.c.b.a,被倒置了呢,具体日志如下:
10-14 16:27:37.363: D/Cocos2dxDownloader(15240): onFailure(i:0 headers:null throwable:java.io.IOException: UnknownHostException exception: Unable to resolve host “d.c.b.a.static.bjtelecom.net”: No address associated with hostname

@jare

麻烦把完整 url 发出来看看?

发你私信了:)

安卓换成二级域名加端口号就可以了。ios用ip地址加端口号没有问题。

多谢反馈 asdf

我们在 Android 上的热更新也会遇到同样的 url 问题 :slightly_smiling:

经过测试,目前 iOS 对 ip 和域名都是支持的,但是 Android 上的确不支持 ip 形式,我们正在检查原因

如果从服务器端加载的图片大小为1024*768大小的话,会报标题这个错误,小图片没有问题

有会报错的图片链接吗?

我们本地搭建服务器,测试在安卓上用 IP:PORT 形式访问图片是可以的,现在问题变得更复杂了。。。

你可以尝试搭建一个新的服务器试试

发你私信了。安卓ip端口号的问题,我用二级域名就可以了。大图片这个在ios下测试的,报错,模拟器没有问题。

好的,我再试试