记录一次Crash分析

今天公司新版本发布,一个周末的时间,bugly上就冒出了一些bug。这是一次弥足珍贵的经历。


 bugly上不仅有栈信息,还有机型信息,可以很好地定位crash


发现bug,第一时间要定位bug,第二时间要复现bug


出现的bug大部分是npe,有一个类型转换错误,还有一个是数组越界,还有OOM

类型转换、数组越界容易解决,OOM不是我们模块的问题,而且这个问题不是那么容易解决的,我自己在跑debug版本项目的时候,时常会OOM,可见该项目的内存优化还是有进步空间的

npe用nullaway可以定位,但是不一定能解决,需要理顺全部的逻辑。关于npe也有一个历史遗留性问题,集中在Android8.0版本发生。这个bug是无法复现的,但是我看了下都是8.0的crash,我猜测8.0源码有所改动。这个npe是点击到下一页面选择城市然后onActivityResult回到上一个界面并更新UI。这些crash都是发生在选择城市页面停留了很久,上一个页面被回收的情况下。理论上应该也不会有问题,我打印了下生命周期,在重建的时候,生命周期如下:onCreate->onStart->onActivityResult->onResume。我认为应该是8.0手机的问题,可能和手机的设置、源码的变动有关。因为我测试的时候我的机子也让上一个页面回收了,但就是不会crash。

猜你喜欢

转载自blog.csdn.net/qq_36523667/article/details/80809309