最近项目中反馈在特定的某一个版本热更新完成后,会出现崩溃的情况,通过安卓模拟器查看启动log,发现出现了了一段崩溃日志,分配一大块内存,在网上搜了搜相关的解决方案:
1、侑虎博客:https://answer.uwa4d.com/question/5c0f3ad928c4e32cba319371
2、优快云博友:https://blog.youkuaiyun.com/linxinfa/article/details/99859995
在崩溃的前面发现这么一条日志:async texture load: failed to load tongyong_anniu_bianji from archive:/CAB-0fed03e9f4b6c994368d82334e760061/CAB-0fed03e9f4b6c994368d82334e760061.resS,还有是说一张图片加载了120字节,但是期望是240字节之类的,网上看下有说是unity版本问题的,也有说bundle坏了的,最终我们这边通过各种定位问题,发现是在热更完成后,重新初始化bundle的时候,热更前加载的bundle并没有释放,而直接替换了磁盘上的bundle物理文件导致,通过对比LZ4的bundle加载模式,可以想通这个道理,于是写了一个测试用例,在已经加载了bundle的情况下,然后替换本地磁盘的文件,还真出现了错误。现附上测试工程资源链接:工程下载