2017-05-18 15 views
1

最近、Retrofit/OkHttpで問題が発生しました。アプリがリクエストを実行するたびに、エラーが発生してクラッシュする:Retrofit/OkHttpが応答時にクラッシュする

05-18 12:13:51.908 E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher 
            Process: <<APP PACKAGE NAME>>, PID: 10264 
            java.lang.reflect.UndeclaredThrowableException 
             at $Proxy0.intercept(Unknown Source) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 
             at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 
             at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 
             at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 
             at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 
             at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185) 
             at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135) 
             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:761) 
             Caused by: java.lang.reflect.InvocationTargetException 
             at java.lang.reflect.Method.invoke(Native Method) 
             at com.android.tools.profiler.support.network.OkHttpInterceptorHandler.trackResponseBody(OkHttpInterceptorHandler.java:58) 
             at com.android.tools.profiler.support.network.OkHttpInterceptorHandler.invoke(OkHttpInterceptorHandler.java:39) 
             at java.lang.reflect.Proxy.invoke(Proxy.java:813) 
             at $Proxy0.intercept(Unknown Source)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)  
             at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)  
             at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)  
             at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)  
             at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135)  
             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:761)  
             Caused by: java.lang.IllegalArgumentException: byteCount < 0: -1 
             at okio.RealBufferedSource.request(RealBufferedSource.java:64) 
             at java.lang.reflect.Method.invoke(Native Method)  
             at com.android.tools.profiler.support.network.OkHttpInterceptorHandler.trackResponseBody(OkHttpInterceptorHandler.java:58)  
             at com.android.tools.profiler.support.network.OkHttpInterceptorHandler.invoke(OkHttpInterceptorHandler.java:39)  
             at java.lang.reflect.Proxy.invoke(Proxy.java:813)  
             at $Proxy0.intercept(Unknown Source)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)  
             at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)  
             at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)  
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)  
             at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)  
             at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135)  
             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:761)  

私はそれがなぜそれをしているのか分かりません。サーバーが200を返し、返された本文に有効なJSONが含まれています。もっと奇妙な部分は、バグやそのようなものが導入された可能性があるというコードでは何も変わっていないということです。それは正常に動作していたすべての突然の要求のすべてのアプリケーションがクラッシュします。

これはなぜ起こっているのでしょうか?

おそらく、私がサーバーにリクエストを送信する前に、私はインターセプターの内部で本体を暗号化することに言及する価値があります。しかし、サーバーが正しい応答を返すので、それが問題だとは思わない。

ありがとうございました:)

+0

が、これはあなたを助けることができるかもしれませhttps://github.com/square/retrofit/issues/1475#issuecomment-172241798 –

答えて

3

以下のクラス名はスタックトレースにあります。私の推測では、それはAndroidスタジオの新しいOkHttpプロファイラのバグだということです。彼らにバグを報告してください。彼らはすぐにそれを修正します。

com.android.tools.profiler.support.network.OkHttpInterceptorHandler.

+1

I無効に高度な「編集設定」の下のプロファイリングと、この周りを得ました。ヒントありがとう! – dazza5000

関連する問題