Android開發問題日記

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 就沒問題了。

方法二:

modulebuild.gradle 中的 android 塊內添加:

packagingOptions{
    exclude 'META-INF/rxjava.properties'
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章