公司项目用到友盟分享,去友盟官网把需要的资源文件下载后,按照文档说明,配置好开发环境,在配置新浪微博分享时,没有把新浪平台目录下的"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”目录下:
然后clear项目打测试包,再运行APP进行新浪分享,完美解决。写这篇文章,是给自己提醒的,要是有运到类似情况的同学,要是没有解决问题,紧参考。
转载请标明出处:
http://blog.csdn.net/mark_yangs/article/details/77887922
本文出自:【杨海波的博客】