2 qq 33346907 qq_33346907 于 2017.01.05 13:43 提问

大神,请问retrofit +rxjava 获取数据,断网时奔溃是什么原因 1C

就一个轮询的网络获取,断网过一会直接报错
报错为:
java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:114)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: rx.exceptions.OnErrorFailedException: Error occurred when trying to propagate error to Observer.onError
at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:187)
at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:273)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:216)
at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:107)
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: rx.exceptions.CompositeException: 2 exceptions occurred.
at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:187) 
at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115) 
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:273) 
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:216) 
at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:107) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: rx.exceptions.CompositeException$CompositeExceptionCausalChain: Chain of Causes for CompositeException In Order Received =>
at android.util.Log.getStackTraceString(Log.java:330)
at com.android.internal.os.RuntimeInit.Clog_e(RuntimeInit.java:59)
at com.android.internal.os.RuntimeInit.access$200(RuntimeInit.java:43)
at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:85)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:118)
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: java.net.SocketTimeoutException
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
at okio.Okio$2.read(Okio.java:139)
at okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
at okio.RealBufferedSource.indexOf(RealBufferedSource.java:306)
at okio.RealBufferedSource.indexOf(RealBufferedSource.java:300)
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196)
at com.squareup.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:191)
at com.squareup.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:80)
at com.squareup.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:906)
at com.squareup.okhttp.internal.http.HttpEngine.access$300(HttpEngine.java:92)
at com.squareup.okhttp.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:891)
at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:749)
at com.squareup.okhttp.Call.getResponse(Call.java:268)
at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:224)
at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:195)
at com.squareup.okhttp.Call.execute(Call.java:79)
at retrofit.OkHttpCall.execute(OkHttpCall.java:116)
at retrofit.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:111)
at retrofit.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:88)
at rx.Observable.unsafeSubscribe(Observable.java:10142)
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10142)
at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:9
这是什么问题,求大神解答
我自用剩下1c币了,大神不要嫌少,搭救我一下

4个回答

u014610664
u014610664   2017.01.06 14:27
weixin_39721510
weixin_39721510 你有没有用try except等来捕获对应的异常,看上去是网络超时了,当网络断开的时候,得不到数据,你需
7 个月之前 回复
qq_33346907
qq_33346907 我会去看看的,谢谢啊
一年多之前 回复
bobo_zai
bobo_zai   2017.06.23 22:03

找到问题了吗 我遇到同样的错误 楼主

oyljerry
oyljerry   Ds   Rxr 2017.01.05 16:16

你有没有用try except等来捕获对应的异常,看上去是网络超时了,当网络断开的时候,得不到数据,你需要加一些错误处理

qq_33346907
qq_33346907 我换了个框架,谢谢你了
一年多之前 回复
qq_33346907
qq_33346907 大神您好,我是试过try catch都没用啊,所以很麻烦,他发生异常是在rxjava里面,我try catch自己的代码都没用啊
一年多之前 回复
ThugKd
ThugKd   2018.03.26 10:21

我的使用了多个网络请求合并, 当多个网络去请求失败的时候 就会报出CompositeException

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android程序奔溃异常收集
程序出现意外的奔溃,比如:空指针异常等等,如果没有连接到开发工具我们就很难知道程序是什么原因导致的程序奔溃了,所以需要把这些奔溃信息收集起来,当出现了奔溃后,只需要拿到自己收集奔溃的文件,就知道是什么原因导致的奔溃了。
Rxjava+ReTrofit+okHttp深入浅出-终极封装特殊篇(替换Gson返回)
1.Retrofit+Rxjava+okhttp基本使用方法 2.统一处理请求数据格式 3.统一的ProgressDialog和回调Subscriber处理 4.取消http请求 5.预处理http请求 6.返回数据的统一判断 7.失败后的retry处理 8.RxLifecycle管理生命周期,防止泄露 9.文件上传下载(支持多文件,断点续传) 10.Cache数据持久化和数据库(greenDao)两种缓存机制
RxJava + retrofit2.0 +okhttp + json+ greendao+ androidstudio
超级简单的 高效的 android 网络访问架构 RxJava + retrofit2.0 + json+ okhttp,几行代码就能实现访问网络 并且将数据显示到界面
Android使用RxJava与Retrofit开发小案例
使用AndroidStudio开发工具,制作一个使用RxJava与Retrofit结合使用的小案例,并且还有Retrofit与RxJava获取数据的对比
rxjava retrofit 框架
rxjava retrofit 框架 rxjava retrofit 框架 rxjava retrofit 框架 rxjava retrofit 框架 rxjava retrofit 框架
iOS crash log
ios 奔溃log 奔溃 左右摇动 进去奔溃log 分析,记录每次奔溃信息
程序奔溃不提示的代码
c#中使程序在奔溃的时候直接结束,不显示奔溃提示 c#中使程序在奔溃的时候直接结束,不显示奔溃提示 c#中使程序在奔溃的时候直接结束,不显示奔溃提示
retrofit学习、retrofit rxjava封装、retrofit mvp rxjava
retrofit学习、retrofit rxjava封装、retrofit mvp rxjava
iOS地址编译
通过iOS 客户端收集到来的奔溃信息 都是些 地址 为了 更好的分析 奔溃原因 通过地址 找到 大致出错的 文件位置
MVP+DataBinding+Rxjava+retrofit2 封装最流行的技术 极度减少代码重复
MVP+DataBinding+Rxjava+retrofit2 封装最流行的技术 极度减少代码重复