2017-12-12 21 views
0

2ヶ月前からretrofit2を統合しました。昨日までは何の問題がユーザーにありませんでした(Huawei社、モデルMHA-L29、アンドロイド7.0上):Android:okhttp3>クラッシュ:予期しないTLSバージョン:なし

Gradle
Fatal Exception: java.lang.IllegalArgumentException: Unexpected TLS version: NONE 
     at okhttp3.TlsVersion.forJavaName(TlsVersion.java:53) 
     at okhttp3.Handshake.get(Handshake.java:56) 
     at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:300) 
     at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:268) 
     at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:160) 
     at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:256) 
     at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:134) 
     at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:113) 
     at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) 
     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
     at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) 
     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
     at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) 
     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
     at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125) 
     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
     at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200) 
     at okhttp3.RealCall$AsyncCall.execute(RealCall.java:147) 
     at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:776) 

実装「com.squareup.retrofit2:改造:2.3 .0 '

このクラッシュについてのアイデアはありますか? Retrofitとリンクしていますか?私はGradleOkHttp libraryを追加しなかった、私はそれをしなければならない?

+0

OkHttpを呼び出す場所でコードを共有していますか? –

+0

他のヌガーデバイスで正常に動作していますか? –

+0

@MiteshVanaliya:はい – anthony

答えて

0

TLS設定を提供することでこれを試すことができますか?これがうまくいくかどうかわかりません。 here

ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS) 
     .tlsVersions(TlsVersion.TLS_1_2) 
     .cipherSuites(
       CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 
       CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 
       CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256) 
     .build(); 

OkHttpClient client = new OkHttpClient.Builder() 
     .connectionSpecs(Collections.singletonList(spec)) 
     .build(); 

Retrofit retrofit = new Retrofit.Builder() 
     .baseUrl(BASE_URL) 
     .client(client) 
     .build(); 
+0

デフォルトでは、OkhttpはMODERN_TLSを使用します。 – anthony

+0

私はそれをしましたが、時にはこのクラッシュがまだ現れることがあります。 – anthony

関連する問題