首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改装/OkHttp响应崩溃

改装/OkHttp响应崩溃
EN

Stack Overflow用户
提问于 2017-05-18 11:26:23
回答 1查看 1.6K关注 0票数 2

最近,我开始对Retrofit/OkHttp产生问题。每当应用程序执行请求时,它都会因错误而崩溃:

代码语言:javascript
复制
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。更奇怪的是,代码中没有任何变化,说明我可能引入了一个bug或类似的东西。它运行良好,突然之间,所有的请求,该应用程序崩溃。

有人知道为什么会发生这种事吗?

也许值得一提的是,在向服务器发送请求之前,我会在拦截器中加密主体。但我不认为这是一个问题,因为服务器返回正确的响应。

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-18 11:47:58

下面的类名在堆栈跟踪中。我猜这是安卓工作室新的OkHttp分析器中的一个bug。你应该向他们报告一个错误,他们会及时解决的。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44046474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档