retrofit2和rxjava2一起使用时的rxjava.jar版本冲突问题解决

来源:互联网 发布:c 加密解密算法 编辑:程序博客网 时间:2024/06/16 19:21

retrofit2和rxjava2一起使用时的rxjava.jar版本冲突问题解决

最近在升级rxjava到2.X.X版本的时候,发现出现rxjava1.x.x和rxjava2.x.x版本冲突

retrofit = new Retrofit.Builder()                    .baseUrl("https://xxx.xxx.com/")                .addConverterFactory(GsonConverterFactory.create())                    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())                    .client(client)                    .build();

因为 RxJavaCallAdapterFactory 的库中有用到rxjava1.x.x版本的依赖

如果是rxjava1.x.x+retrofit2使用下面配置

    compile 'io.reactivex:rxjava:1.1.1'    compile 'io.reactivex:rxandroid:1.1.0'    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.x.x+retrofit2使用下面配置

    compile "io.reactivex.rxjava2:rxjava:2.0.8"    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.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0-RC3'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0-RC3'

这个库是在

compile 'com.squareup.retrofit2:adapter-rxjava:2.2.0'

的基础上修改的,内部其实就是把使用到rxjava1.x.x的地方修改到rxjava2.x.x

retrofit = new Retrofit.Builder()                    .baseUrl("http://xxx.xxx.com")                    .addConverterFactory(GsonConverterFactory.create())                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())                    .client(client)                    .build();
10 0
原创粉丝点击