关于OkHttp在Android5.0以下版本不兼容,报java.lang.ExceptionInInitializerError

前言

最近,公司的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统计平台的重要性,共勉!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我可以为您介绍一下"Exception in thread 'OkHttp Dispatcher' java.lang.NullPointerException"错误的解决方法。 这个错误通常是由于在使用OkHttp库时,发生了空指针异常导致的。空指针异常意味着您的代码尝试访问一个空对象的属性或方法。 要解决这个问题,您可以按照以下步骤进行操作: 1. 检查代码中的空引用:首先,您需要检查代码中是否存在空引用。确保在使用OkHttp库的地方,没有使用空对象。 2. 检查网络连接:如果您的代码涉及到网络连接,那么请确保您的设备已经连接到网络,并且网络连接是正常的。如果网络连接不稳定或者断开,可能会导致OkHttp库出现空指针异常。 3. 检查OkHttp版本:如果您使用的是较旧的OkHttp版本,那么可能会存在一些已知的问题和bug。请尝试升级到最新版本OkHttp库,以解决可能存在的问题。 4. 检查代码逻辑:仔细检查您的代码逻辑,确保在使用OkHttp库的地方,没有遗漏任何必要的参数或者方法调用。确保您正确地使用了OkHttp库提供的方法和功能。 5. 使用调试工具:如果以上步骤都没有解决问题,您可以尝试使用调试工具来定位问题。通过在代码中设置断点,并使用调试工具逐步执行代码,您可以找到导致空指针异常的具体位置,并进行修复。 希望以上解决方法能够帮助您解决"Exception in thread 'OkHttp Dispatcher' java.lang.NullPointerException"错误。如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值