為什么demo不能用
我下載了demo 調用 ?CommonOkHttpClient.post(CommonRequest.createPostRequest(url,params),handler); ?怎么提示是 ? ?java.lang.ExceptionInInitializerError ?這個錯誤的 ?。。不能用。
我下載了demo 調用 ?CommonOkHttpClient.post(CommonRequest.createPostRequest(url,params),handler); ?怎么提示是 ? ?java.lang.ExceptionInInitializerError ?這個錯誤的 ?。。不能用。
2017-05-26
舉報
2018-03-01
請問在那里下載的? ?,地址是多少?
2017-08-21
你好.由于
@Override
public X509Certificate[] getAcceptedIssuers() {
? ?return null;
}
返回null導致
因為OKhttpClient類中的sslSocketFactory()方法實現,有一個非空判斷(看下面的代碼第二行)
public Builder sslSocketFactory(SSLSocketFactory sslSocketFactory) {
?if (sslSocketFactory == null) throw new NullPointerException("sslSocketFactory == null");
?X509TrustManager trustManager = Platform.get().trustManager(sslSocketFactory);
?if (trustManager == null) {
? ?throw new IllegalStateException("Unable to extract the trust manager on " + Platform.get()
? ? ? ?+ ", sslSocketFactory is " + sslSocketFactory.getClass());
?}
?this.sslSocketFactory = sslSocketFactory;
?this.certificateChainCleaner = CertificateChainCleaner.get(trustManager);
?return this;
}
修改方法:
在httputils類中添加
private static final X509Certificate[] AcceptedIssuers = new X509Certificate[] {};
@Override
public X509Certificate[] getAcceptedIssuers() {
? ?return AcceptedIssuers ;
}
返回?AcceptedIssuers 問題解決