Migrate from RxAndroid 1.x to 2.x (RxJava included)
我有一个运行RxAndroid 1.x的项目(一切正常)。
我正在尝试迁移到2.x版本。
我的gradle文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.android.support:design:24.2.1' 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.squareup.okhttp3:okhttp:3.4.1' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.jakewharton:butterknife:8.4.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' compile 'org.apache.commons:commons-lang3:3.4' compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') { transitive = true; } //compile 'io.reactivex:rxandroid:1.2.1' //compile 'io.reactivex:rxjava:1.2.1' compile 'com.jakewharton.rxbinding:rxbinding:0.4.0' compile 'com.jakewharton.rxbinding:rxbinding-support-v4:0.4.0' compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' compile 'io.reactivex.rxjava2:rxjava:2.0.0' compile 'io.reactivex.rxjava2:rxandroid:2.0.0-RC1' } |
我遇到此错误:
1 2 3 4 | Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties File1: /Users/agustin/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.0.0/5151c737c01616c372c3d00ab145868ede10e826/rxjava-2.0.0.jar File2: /Users/agustin/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.0/748f0546d5c3c27f1aef07270ffea0c45f0c42a4/rxjava-1.1.0.jar |
为什么要添加RxJava 1.1.0?
我可以排除rxjava.properties,但我想了解该错误。我已经清理了项目并使缓存无效,但错误仍然存??在。
看图片:
谢谢
只想跟进此问题的解决方案。 RxBinding 1.0.0已发布,从这一点开始,它应该与RxJava2兼容,但是它仍导入RxJava的较旧版本,这会导致出现与该问题相同的问题。为了解决该问题,只需将以下内容添加到android下的gradle构建脚本中即可。
1 2 3 4 5 6 | android { ... packagingOptions { exclude 'META-INF/rxjava.properties' } } |
要解决此问题,现在您可以将RxBinding和Retrofit Adapter更新到版本2。
1 2 3 | compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0' compile 'com.jakewharton.rxbinding2:rxbinding-support-v4:2.0.0' compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0' |
您可以通过在项目的根目录中运行命令
在您的情况下,我建议违规的项目是: