2017-06-28 40 views
1

我們的項目採用RxJava 1:RxJava 1和RxJava 2在同一個項目

compile 'io.reactivex:rxjava:1.1.6' 

還有就是我們用的是一個庫使用RxJava 2內部:

compile 'io.reactivex.rxjava2:rxjava:2.0.9' 

當我做./gradlew assembleDebug我得到這個錯誤:

com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties 
     File1: /Users/darklord/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.6/2586312cd2b8a511e4c6236736f5a039fc0f2273/rxjava-1.1.6.jar 
     File2: /Users/darklord/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.0.9/a5aad74623ade11162dd53cdf0645a51b12221a0/rxjava-2.0.9.jar 

我認爲RxJava 1和RxJava 2可以同時使用,爲什麼我仍然是g解決這個錯誤?

+0

猜測google在'META-INF/rxjava.properties' APK中複製的文件是否返回 - 解決方案 – Selvin

回答

4

rxjava.properties文件在運行時不需要。

因此,您可以通過在app/build.gradle文件中設置packagingOptions來打包Android應用程序來排除該文件,如下所示。

android { 
    ... 
    packagingOptions { 
     exclude 'META-INF/**rxjava.properties**' 
    } 
}