cc.assetManager.loadRemote的问题,100%重现

  • Creator 版本:2.4

  • 目标平台: iOS

  • 详细报错信息,包含调用堆栈:
    [ERROR] (/Users/xxx/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_global.cpp, 907): initWithImageFile: /var/mobile/Containers/Data/Application/4D5A9527-FD92-48E1-8C5C-6BF12C9BF6EF/Documents//gamecaches/15933783424990.jpg failed!

  • CODE:

cc.assetManager.loadRemote('https://dss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3849246509,1662545317&fm=26&gp=0.jpg', (err, texture) => {
	let spriteFrame = new cc.SpriteFrame(texture);
	sprite.spriteFrame = spriteFrame;
});
  • 重现方式:
    1、构建后,接上真机,直接在Xcode中点调试按钮RUN
    2、然后在手机中操作信任该app,再次RUN
    3、启动后,第一次图片显示无误
    4、在Xcode中点击停止调试STOP
    5、再次RUN,就出现以上错误了

  • 手机型号 :iPhone 6 puls(12.4.7)、iPhone X(13.5.1)

  • 编辑器操作系统 :macOS Catalina 10.15.5、Xcode 11.5(11E608c)

  • 出现概率:100%

  • 额外线索:
    如果在第2步信任后,直接在手机中点击app运行,以后每次是对的;
    或者每次调试完成后,删除app再重新来过,也是对的;
    再或者每次url不一样,也对。
    看样子像是以url哈希把图片缓存在本地了,然后读的时候没读到。我试过加上cacheEnabled: false,无效。我看目录Documents后面好像是多了个斜杠,至于图片是否缓存成功,还是路径不对,我没有试了

1赞

看坛子里好多人都遇到cc.assetManager加载出错,不知道是不是就这个,我可是花了好几个小时不断的尝试,最终才精确定位,希望引擎组给解决方案,否则只能用原来的loader了:grin:

cc.loader也有同样的问题,我晕……是我姿势不对么?

解决了吗? 遇到完全一样的问题。难受

应该是一样的问题

1赞

缓存bug,2.4.3才解决,cocos涉及网络操作的api慎用,坑的你没脾气。。。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。