前言
最近,公司的App项目,有一位用户出现了闪退。然后分析了一下原因,因为项目还没接入统计Bug的第三方,所以没法直接看到报错的Log信息。从用户反馈的情况说用的是VIVO X5机型,然后上网搜了一下这个机型,是2014年的一款手机,预装Android系统版本为Android4.4。
然后就想到是不是低版本不兼容的问题,因为平时用的测试机都是Android5.0以上的机型,项目自己还没在4.x的机型上跑过,所以有此疑虑。于是自己用AndroidStudio建了个4.4的Android模拟器,运行了一下项目,果然出现了闪退,并且查看闪退的报错信息
java.lang.ExceptionInInitializerError
分析
下面是整个报错信息:
由信息可知,可能是由于OkHttp不兼容Android5.0以下的版本,于是查看了OkHttp的官方文档:
由文档可知,OkHttp在3.13版本之后不再兼容Android5.0以下和Java1.8以下版本了。但是给出了兼容方案,如果要兼容Android2.3以上版本或者Java1.7以上版本,可以使用OkHttp的3.12.x版本,注意这里的3.12.x中的x具体指某个数字,比如
api 'com.squareup.okhttp3:okhttp:3.12.1'
于是果断把OkHttp的版本改成了3.12.1
注意:这里的logging-interceptor也要改成3.12.1版本。否则照样报错。(亲测)
于是改完后再运行到Android4.4的模拟器上,妥妥的运行了。
总结
经过以上可知阅读官方文档是多么得重要了,还知晓了接入Bug统计平台的重要性,共勉!