1. 程式人生 > >RxJava2 和 Retrofit2 依賴時出現衝突

RxJava2 和 Retrofit2 依賴時出現衝突

配置如下:

compile "com.squareup.okhttp3:okhttp:3.6.0"
compile "io.reactivex.rxjava2:rxjava:2.0.7"
compile "io.reactivex.rxjava2:rxandroid:2.0.1"
compile "com.squareup.retrofit2:retrofit:2.2.0"
compile "com.squareup.retrofit2:converter-gson:2.2.0"
compile "com.squareup.retrofit2:adapter-rxjava:2.2.0"

然後在編譯執行的時候報錯了:

原因是使用了rxjava2, compile"io.reactivex.rxjava2:rxjava:2.0.7"
但是retrofit2一開始是基於rxjava開發的介面卡即adapter-rxjava,

這個介面卡只適合rxjava,如果想使用rxjava2就得使用adapter-rxjava2介面卡
這個介面卡有兩個

一個是retrofit2官方設計的(上線不久),

另外一個就是jakewharton大神弄出來的retrofit2-rxjava2-adapter介面卡。


所以把compile "com.squareup.retrofit2:adapter-rxjava:2.2.0"

改成 compile "com.squareup.retrofit2:adapter-rxjava2:2.2.0"

就可以了。

注意:如果設定了

build.addCallAdapterFactory(RxJavaCallAdapterFactory.create())//這裡的RxJavaCallAdapterFactory要換成RxJava2CallAdapterFactory