使用retrofit+rxjava报java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread

原创 2016年08月29日 17:15:39

引言:如果还没有接触retrofit+rxjava的同学赶紧学起来吧!真的炒鸡好用辣。。。

好了,言归正传。最近才接触的retrofit和rxjava,所以在实践过程中会遇到一些之前没有遇到过的
问题,昨天因为第三方包的原因搞了一整天才解决,所以今天就来给大家分享一下。
首先,我导入的包是:

compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
compile 'io.reactivex:rxjava:1.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.1.2'
compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.google.code.gson:gson:2.6.2'

然后在声明retrofit的时候我设置了一下log拦截器

addInterceptor(new HttpLoggingInterceptor()
.setLevel(HttpLoggingInterceptor.Level.BODY));

然后运行的时候就懵逼了

E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-1
Process: com.jack.mc.cyg.retrofittestproject, PID: 30089
    java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
    ..........(还有很多错误日志)
     Caused by: java.lang.NoClassDefFoundError: okhttp3.internal.Platform

在这里我们不用去关心其他的错误日志,只需要看什么异常,看造成异常的原因就可以了。昨天看到这个的时候我就很奇怪,明明导了okhttp3这个包啊!为什么会报错呢,然后我就习惯性的build项目了,后来发现还是不行,然后我就在网上疯狂的下载retrofit的源码,后来我发现大多数人在声明retrofit的时候都没有设置log拦截器,然后我就跟风,把log拦截器给干掉了,后来发现竟然可以正常运行了,然后我又懵逼了,这跟log拦截器有什么关系啊???然后我就试着去谷歌那个错误,结果在stackoverflow上找到了发生错误的原因,是说导入的包版本不匹配,这么一说,再来看之前导入的包,哪些包不匹配呢,我估计大家都猜出来了,肯定是有log拦截器的包啊!然后我就又重新导入okhttp3和logging-interceptor这两个包:

compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
compile 'io.reactivex:rxjava:1.1.0'
compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
compile 'com.google.code.gson:gson:2.6.2'

然后重新运行,bingo,完美

在此附上查阅的网站网址:

点我查阅

版权声明:本文为博主原创文章,未经博主允许不得转载。

RxJava:java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

在使用RxJava的时候,突然之间就出现了一个问题:java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worke...
  • z2464342708m
  • z2464342708m
  • 2016年08月24日 17:08
  • 10484

使用retrofit与Rxjava结合出的错误:java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker

使用Retrofit与Rxjava报的错误:Process: com.example.john.retrofit2, PID: 14741 ...
  • qq_24448923
  • qq_24448923
  • 2016年11月11日 16:34
  • 4076

java.lang.IllegalStateException异常产生的原因及解决办法

问题描述: 错误类型大致为以下几种: java.lang.IllegalStateException:Cannot   forward   a   response   that   is...
  • superdog007
  • superdog007
  • 2014年02月27日 10:35
  • 176610

java.lang.IllegalStateException错误原因以及解决方法

Servlet.service() for servlet default threw exception java.lang.IllegalStateException at org.apa...
  • zls_12
  • zls_12
  • 2014年03月13日 10:30
  • 4945

使用retrofit+rxjava报java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread

该问题原因很简单。因为导入的包版本不一致。 解决方法,将拦截器和okhttp的般片设置一致即可。例如: compile 'com.squareup.okhttp3:okhttp:3.3.1' c...
  • zqbemail10
  • zqbemail10
  • 2017年03月18日 03:06
  • 283

我们一起去学习android中的MVP

MVP架构介绍: MVP是Model、View、Presenter的缩写,分别代表项目中3个不同的模块。 Model:它主要是负责数据的加载或者存储,比如从服务器或者从本地数据库获取数据等。...
  • qq_24448923
  • qq_24448923
  • 2016年09月13日 18:22
  • 183

简单理解java.lang.IllegalStateException异常:简单分析和简单解决方案

我们在做文件上传或者下载,或者过滤等操作时,可能要用到页面的输出流. 例如在JSP使用:     response.reset();     response.setContentType(”a...
  • z69183787
  • z69183787
  • 2014年02月07日 18:31
  • 3771

java.lang.IllegalStateException异常:简单分析和简单解决方案

今天写java文件下载程序,完成后使用一切正常,但是总抛出java.lang.IllegalStateException异常,虽然并不影响正常使用,但看了总让人觉得很不舒服,检查代码并没有错,最后上网...
  • a1304317638
  • a1304317638
  • 2012年11月12日 14:06
  • 57779

Fatal Exception thrown on Scheduler.Worker thread

10-24 16:39:10.597 15956-16298/com.rengwuxian.rxjavasamples E/AndroidRuntime: FATAL EXCEPTION: RxCac...
  • a243920187
  • a243920187
  • 2016年10月24日 16:42
  • 2652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用retrofit+rxjava报java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread
举报原因:
原因补充:

(最多只允许输入30个字)