两个点造成的这个bug:
- aapt2会对apk中的png图片进行路径长度压缩,也就是会修改原来的文件名
- aux是windows系统已经占用的文件名,用户不能创建叫aux的文件。
此时恰好aapt2把apk中的一张图片重命名为aux。导致这张图片不能被解压出来,从而提示文件找不到,中断了差分流程。
暂时的解决方案有:
- 停掉路径压缩优化,这个是负优化,肯定不是首选了
android.enableResourceOptimizations = false - 使用linux/mac来打差分包
- 定位到原文件,修改下文件名,让appt2重新分配一个名称
- 已提issue给Tinker,坐等兼容
https://issuetracker.google.com/issues/276340505