Android友盟新浪分享5.0以下版本报错SSLSocket

  公司项目用到友盟分享,去友盟官网把需要的资源文件下载后,按照文档说明,配置好开发环境,在配置新浪微博分享时,没有把新浪平台目录下的"assets"目录文件拷贝都项目中去,然后运行APP,调用新浪分享,发现在5.0以上的手机,都能正常运行,而5.0以下的手机,在调用新浪分享时,APP瞬间crash掉了,我也瞬间crash了,然后去找错误日志,当看到错误日志,让我更加崩溃:

java.lang.ClassCastException: java.net.Socket cannot be cast to javax.net.ssl.SSLSocket
          at com.android.okhttp.internal.http.HttpsEngine.connected(HttpsEngine.java:45)
          at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:303)
          at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
          at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
          at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:355)
          at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
          at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:161)
          at com.sina.weibo.sdk.net.HttpManager.requestHttpExecute(HttpManager.java:80)
          at com.sina.weibo.sdk.net.HttpManager.openUrl(HttpManager.java:63)
          at com.sina.weibo.sdk.utils.AidTask.loadAidFromNet(AidTask.java:400)
          at com.sina.weibo.sdk.utils.AidTask.access$200(AidTask.java:49)
          at com.sina.weibo.sdk.utils.AidTask$2.run(AidTask.java:232)
          at java.lang.Thread.run(Thread.java:848)

这又是什么鬼,我好像没有去做些操作啊,这个错误到底哪里来的呢?然后就去调用的地方加断点、try-catch什么的,都没有什么作用,实在没辙了,去友盟的论坛,一找还真有这个错误,原来是新浪sdk导致的bug,需要在项目中导入一个CA证书,证书必须放在项目的“assets”目录下:


CA证书下载链接


然后clear项目打测试包,再运行APP进行新浪分享,完美解决。写这篇文章,是给自己提醒的,要是有运到类似情况的同学,要是没有解决问题,紧参考。


转载请标明出处:

http://blog.csdn.net/mark_yangs/article/details/77887922

本文出自:【杨海波的博客】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值