Retrofit2低版本兼容问题

我项目依赖的版本,测试机是Android 7.0 的设备,一切正常

    implementation 'com.squareup.retrofit2:retrofit-converters:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

然而,我们采购回来的设备居然是Android 4.4的(这年头居然有这么低的版本),一请求http就报错了,trycatch都不好使,原因是当前版本的okhttp只支持5.0以上的设备,原因找到了,那就好办了,把okhttp版本降低就可以了(网上说3.13以下就可以了),所以我的依赖是这样的

    implementation 'com.squareup.okhttp3:okhttp:3.12.0'
    implementation 'com.squareup.retrofit2:retrofit-converters:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

然后测试还是以报错,原来我加载的还是1.13以上的版本,原因是retrofit2里也依赖的okhttp,而android死丢丢中解决依赖冲突的办法是取版本最高的



然后又去降低retrofit2的版本,直接来了个2.0.2

    implementation 'com.squareup.retrofit2:retrofit:2.0.2'
    implementation 'com.squareup.retrofit2:converter-gson:2.0.2'

这下好了,终于不报版本兼容问题了,但是协成又用不了了,-_-||真烦...
然后看了下retrofit对协成的支持是从2.6开始的,所以有改成了这样

    implementation 'com.squareup.retrofit2:retrofit:2.6.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.6.0'

最终测试,该版本既可以正常兼容Android 5.0以下版本,同时有可以使用协成

你可能感兴趣的:(Retrofit2低版本兼容问题)