android – 使用RxJava 2和Retrofit 2,适配器版本问题

android – 使用RxJava 2和Retrofit 2,适配器版本问题,第1张

概述我在 Android Studio中为现有的应用程序模块添加了一个新的库模块.主要区别在于添加RxJava 2和Retrofit 2. 更新新模块的build.gradle后,我开始得到下一个错误: Error:Execution failed for task ‘:app:transformResourcesWithMergeJavaResForBetaNewApiDebug’. com.and 我在 Android Studio中为现有的应用程序模块添加了一个新的库模块.主要区别在于添加RxJava 2和Retrofit 2.
更新新模块的build.gradle后,我开始得到下一个错误:

Error:Execution Failed for task ‘:app:transformResourcesWithMergeJavaResForBetaNewAPIDeBUG’.
com.androID.build.API.transform.transformException: com.androID.builder.packaging.DuplicatefileException: Duplicate files
copIEd in APK meta-inf/rxjava.propertIEs file1:
C:\Users\Gaket.gradle\caches\modules-2\files-2.1\io.reactivex.rxjava2\rxjava\2.0.2\cfccdd18cdfbe7b4773d42c9f3512eeafbe5cbf9\rxjava-2.0.2.jar
file2:
C:\Users\Gaket.gradle\caches\modules-2\files-2.1\io.reactivex\rxjava\1.1.5\ece7b5d0870e66d8226dab6dcf47a2b12afff061\rxjava-1.1.5.jar

我看到RxJava存在一些问题(我想尝试RxJava 2,在这里我看到RxJava 1和RxJava 2).在添加所有依赖项后立即出现问题,我们在主应用程序中不使用RxJava.

更新:
正如我在下面提到的,我检查了三个主题(你可以在下面看到它).这个问题:possible duplicate类似于我在下面提到的那个:this one.他们都有解决方法,没有考虑我在答案中强调的真正问题.答案是“目前还没有从Retrofit 2到RxJava 2的生产就绪适配器”(详情见下面的答案).

我检查了几个主题:first是一个具体问题的具体解决方案,second谈论rxbindings,但我不使用它们,其他一些也没有解决我的问题或看起来像完全解决方法this one.我试图Google“rxjava 2和改造2“但没有找到解决方案.

这是库的build.gradle:

apply plugin: 'com.androID.library'apply plugin: 'com.jakewharton.butterknife'androID {compileSdkVersion 25buildToolsversion "25.0.0"defaultConfig {    minSdkVersion 15    targetSdkVersion 24    versionCode 1    versionname "1.0"    testInstrumentationRunner "androID.support.test.runner.AndroIDJUnitRunner"}buildTypes {    release {        MinifyEnabled false        proguardfiles getDefaultProguardfile('proguard-androID.txt'),'proguard-rules.pro'    }}}dependencIEs {compile filetree(dir: 'libs',include: ['*.jar'])androIDTestCompile('com.androID.support.test.espresso:espresso-core:2.2.2',{    exclude group: 'com.androID.support',module: 'support-annotations'})compile "com.androID.support:appcompat-v7:$supportlibraryVersion"compile "com.androID.support:recyclervIEw-v7:$supportlibraryVersion"compile 'io.reactivex.rxjava2:rxjava:2.0.2'compile 'io.reactivex.rxjava2:rxandroID:2.0.1'compile 'com.squareup.okhttp3:okhttp:3.5.0'compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'compile "com.makeramen:roundedimagevIEw:1.3.0"annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'provIDed 'javax.annotation:Jsr250-API:1.0'compile 'com.jakewharton:butterknife:8.4.0'testCompile 'junit:junit:4.12'}

问题是:
  为什么会出现这个问题以及处理它的正确方法是什么?

解决方法 您应该将官方适配器用于第二版RxJava:

compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0 // works with RxJava 2

适配器具有版本2.*.*这一事实并不意味着它打算与RxJava 2一起使用,正如我所想的那样.

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' // won't work with RxJava 2

以前,您应该使用临时版本:以下是Jake Wharton的存储库,其中包含Retrofit 2 to RxJava 2 adapter.

我在AndroID Studio终端中使用命令gradlew:app dependencIEs发现了这个问题,其中app是我的库模块的名称.在那里我查找了“rxjava”关键字并找到了它的不同版本.

更新:2月,21 Square发布了适配器的官方版本,Darshan Mistry在评论中指出.答案已更新.

总结

以上是内存溢出为你收集整理的android – 使用RxJava 2和Retrofit 2,适配器版本问题全部内容,希望文章能够帮你解决android – 使用RxJava 2和Retrofit 2,适配器版本问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1123471.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存