1. 使用 Rxjava2 和 Retrofit2 依赖库运行项目报错 :
<问题出现>
依赖库:
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.2.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
之后报错如下:
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: C:\Users\CC\.gradle\caches\modules-2\files-2.1\io.reactivex.rxjava2\rxjava\2.0.1\57f850a6b317e5582f1dbaff10a9e7d7e1fcdcfb\rxjava-2.0.1.jar
File2: C:\Users\CC\.gradle\caches\modules-2\files-2.1\io.reactivex\rxjava\1.3.0\af000bec2036a2a9d07197c4b03b8966bfc60b03\rxjava-1.3.0.jar
<解决办法>
方法一(推荐):
因为在依赖 com.squareup.retrofit2:adapter-rxjava:2.2.0
时会出现与Rxjava冲突的版本。
将 com.squareup.retrofit2:adapter-rxjava:2.2.0
更换成 com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0
就没问题了。
方法二:
在 module
的 build.gradle
中的 android
块内添加:
packagingOptions{
exclude 'META-INF/rxjava.properties'
}