BUG解决:okhttp报getDefaultSSLSocketFactory错

记录一下之前项目开发中遇到的一个Bug问题!

项目开发中的网络请求是公司大神用GO封装的,但是项目中也会用到OKHttp网络请求库,APP在Debug的时候没发现任何问题,签名后在Android7.0以上手机也运行正常,但是发现在5.0-6.0手机上会出现Bug问题,总是会报如下问题:

java.util.concurrent.ExecutionException: java.lang.AssertionError
at java.util.concurrent.FutureTask.report(FutureTask.java:94)
at java.util.concurrent.FutureTask.get(FutureTask.java:164)
at com.bumptech.glide.load.b.c.a.afterExecute(FifoPriorityThreadPoolExecutor.java:96)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1121)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
at com.bumptech.glide.load.b.c.a$a$1.run(FifoPriorityThreadPoolExecutor.java:118)
 Caused by: java.lang.AssertionError
at com.android.okhttp.OkHttpClient.getDefaultSSLSocketFactory(OkHttpClient.java:664)
at com.android.okhttp.OkHttpClient.copyWithDefaults(OkHttpClient.java:620)
at com.android.okhttp.OkUrlFactory.open(OkUrlFactory.java:53)
at com.android.okhttp.OkUrlFactory.open(OkUrlFactory.java:48)
at com.android.okhttp.HttpHandler.openConnection(HttpHandler.java:39)
at java.net.URL.openConnection(URL.java:479)
at com.bumptech.glide.load.a.f$a.a(HttpUrlFetcher.java:141)
at com.bumptech.glide.load.a.f.a(HttpUrlFetcher.java:62)
at com.bumptech.glide.load.a.f.b(HttpUrlFetcher.java:44)
at com.bumptech.glide.load.a.f.a(HttpUrlFetcher.java:20)
at com.bumptech.glide.load.c.f$a.b(ImageVideoModelLoader.java:70)
at com.bumptech.glide.load.c.f$a.a(ImageVideoModelLoader.java:53)
at com.bumptech.glide.load.b.a.e(DecodeJob.java:170)
at com.bumptech.glide.load.b.a.c(DecodeJob.java:128)
at com.bumptech.glide.load.b.i.f(EngineRunnable.java:122)
at com.bumptech.glide.load.b.i.d(EngineRunnable.java:101)
at com.bumptech.glide.load.b.i.run(EngineRunnable.java:58)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)?
at java.lang.Thread.run(Thread.java:818)?
at com.bumptech.glide.load.b.c.a$a$1.run(FifoPriorityThreadPoolExecutor.java:118)?

搞了好久才发现,貌似是OKHttp和GO的包,对于获取默认的SSLSocketFactory实现不一样。

如果先调用Go的代码,在调用OKHttp的时候,就不能够获取到系统默认的SSLSocketFactory;但是如果先执行一次OKHttp或者创建一次实例之后,就可以了,好奇怪。

具体原因不甚了解,在此记录下。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值