java RxJava和RxJava2能否在同一个Android项目中共存?
我有一个使用RxJava1的项目。现在我正在构建一个模块组件,并考虑从RxJava 2开始
当执行梯度同步时,一切正常。然而,在编译过程中,我得到了以下错误
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForProductionDebug'. com.安卓.build.api.transform.TransformException: com.安卓.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties File1: /Users/user.name/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.2.5/b423532b5a3c949cbb799468f83bf566032fe98d/rxjava-1.2.5.jar File2: /Users/user.name/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.0.1/57f850a6b317e5582f1dbaff10a9e7d7e1fcdcfb/rxjava-2.0.1.jar
我是否可以让它们在一个项目中共存(但不同的库),或者这是一个绝对不可能的问题
也就是说,我有
compile 'io.reactivex:rxjava:1.2.5'
compile 'io.reactivex:rx安卓:1.2.1'
另一个我有
compile 'io.reactivex.rxjava2:rx安卓:2.0.1'
# 1 楼答案
关于this documentation,理论上它们可以共存,因为类位于不同的包中
您面临的错误消息可能是由android打包到apk中引起的,apk尝试导入两个库,并发现两个库中都存在一个文件(请查看this issue)
通过将以下内容添加到
build.gradle
的“android”块中,可以忽略该文件:但是,一定要在变更后正确地测试项目
# 2 楼答案
你需要排除一些rx属性。 添加以下内容:
到你的应用程序构建gradle