问题
最近要在Eclipse上使用RxJava2,导入RxJava 2.0.1 和RxAndroid 2.0.1的jar包后,在使用map、flatmap、zip,或者使用subscribeOn和observOn的切换线程的时候,都报错了,完全没法使用。
错误信息:
FATAL EXCEPTION:main
Process: com.xxx.xxxx, PID: 12345
java.lang.NoClassDefFoundError:io.reactivex.Flowable
at io.reactivex.Observable.bufferSize(Observable.java:122)
at io.reactivex.Observable.zip(Observable.java:3627)
.........
解决方案
从错误信息看,Flowable类找不到定义,那就是类加载器加载的时候出错了,看了下jar包中对应包下,这个类是存在的。于是考虑是不是Eclipse下自己下载RxJava的jar手动依赖缺少了其它依赖包,上maven中央仓库查找对应RxJava 2.0.1的包需要依赖什么jar库,果然Runtime Dependencies下有个reactive-streams的依赖,下载1.0.0的包,导入eclipse的libs目录中,完美解决。