现象
项目中通过Jenkins 自动化出包,24号生产的apk一切正常,26号新出的apk点击Icon 后无反应,查看log,MainActivity 直接crash了。
定位
分析log 发现apk在启动报错
日志.png
解压缩、文件相关。
(当时分析日志的时候,更多的是从应用自身逻辑错误上去定位,忽略了这个日志,导致浪费了很多时间)
猜测
1.出包环境
2.代码提交
这两个通过查看版本日志和回滚操作,依旧无法启动。
3.apk本身。
之前包体大小是1.9G,新包体大小2.1G,对比发现是新增了一些美术资源。而2206412800 这个字节数看起来和int 上限非常的像,猜测是包体太大。
测试
直接删除一些资源,进行出包 -> apk正常
结论
APK包体不能超过2G的限制,这个是安卓平台的限制。其实是Linux的限制。
总结
定位问题时对 log 中的关键信息不够敏感,没有第一时间反应到包体大小上。
后续需要针对多资源制定策略。如分包,动态下载等。