我们项目遇到一个问题,首次玩游戏的过程中,有较高的概率出现文件复制失败的警告,而且这个警告会不断地出现并导致游戏卡死。
经过排查,发现如果短时间内下载较多的文件,由于cacheManager缓存文件有500毫秒的延迟,这些文件的缓存操作会延后。
然而如果这个延迟的时间过长,重新引用字节小游戏引擎的临时文件时可能会找不到(可能是临时文件数量过多触发了字节小游戏临时文件清理机制)。
但是即使文件没找到,cacheManager的_cache方法仍会不断尝试复制这个不存在的文件,导致警告不断出现。
-
Creator 版本:2.4.4
-
目标平台:Android
-
详细报错信息,包含调用堆栈:
demo中在_cache方法中打印了缓存的id、srcUrl和localPath字段用于调试。
-
重现方式:
1、删除游戏缓存,确保首次进入游戏(设置中清除今日头条app的数据)
2、使用今日头条扫码进入游戏
3、根据文件下载提示,等待所有文件(demo中需要下300个文件)下载完成提示
4、文件下载完成后需要等几分钟时间,让cacheManager缓存的文件数量达到一定上限(大约是400~500个文件,可以根据demo打印的localPath的值来判断缓存文件数量)。
5、文件达到上限后会出现类似警告:
copy file failed: path: ttfile://temp/tma/downloadfile/xxx.json message:copyFile:fail no such file or directory, copyFile xxx => xxx。
从报错上看似乎是cacheManager在不断尝试复制不存在的文件。 -
手机型号:华为mate20
-
今日头条app版本:8.2.3
-
编辑器操作系统 :windows 10
-
编辑器之前是否有其它报错 :无
-
出现概率:必现
demo链接: https://pan.baidu.com/s/14XonwS1dRPKhzqLjLsFbCg 提取码: mfc9