-
Creator 版本:2.0.1及以后
-
目标平台: WeChat Game
-
详细报错信息,包含调用堆栈:
saveFile:fail the maximum size of the file storage limit is exceeded
和一堆包含文件路径的Array -
重现方式:CocosCreator项目存在足够多的远程服务器资源(但不超过微信要求的50m大小)
-
之前哪个版本是正常的 :2.0.0及
-
编辑器操作系统 :Windows 10 Pro 1803
-
编辑器之前是否有其它报错 :无
-
出现概率:
在md5缓存开启的情况下重新打包几乎必出(未开启md5缓存情况没有测试)
微信开发者工具并不会存在这个问题,偶尔也会有但是可以清除文件缓存来解决 -
额外线索:
原因可能为两个:
1)没有清理微信开放用户目录的旧文件,文件没有被清理,加载新的文件时本地文件总大小超出50m的微信容量上限,导致加载失败。
2)加载文件时除了带md5的文件路径,不带md5的文件路径也执行了一边加载,然后远程下载失败的文件保存也失败,执行回调的时候写入了报错信息,终止了文件加载,导致本地资源加载失败无法进行游戏。
已经测试过在启动游戏后第一个运行脚本内的“onLoad”中手动查找微信缓存并删除可以解决问题
已经过调试是"wx-downloader.js"这个文件内的“downloadRemoteFile”函数内使用微信“downloadFile”和“saveFile”的失败"fail"回调执行的"callback"回调函数传入的参数产生的影响。(没有具体测试是哪一个产生的影响)
参照2.0.0及以前的"wx-downloader.js"将参数传null测试恢复正常,但没有继续跟踪后续代码执行的内容。
- 临时解决方案:
将 安装目录\resources\builtin\weapp-adapter\wechatgame\libs下的wx-downloader的上述两个回调的参数置为空
(记得备份)