Ich habe ein Projekt, das RxJava 1 verwendet. Jetzt erstelle ich eine Modulkomponente und denke darüber nach, mit RxJava 2 zu beginnen.
Wenn Sie eine Gradle-Synchronisierung durchführen, ist alles in Ordnung. Beim Kompilieren habe ich jedoch den folgenden Fehler erhalten
Fehler: Ausführung für Task fehlgeschlagen ": App:transformResourcesWithMergeJavaResForProductionDebug ". com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: In APK META-INF / rxjava.properties kopierte Dateien Datei1: /Users/user.name/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.2.5/b423532b5a3c949cbb799468f83bf566032fe98d/rxjava-1.2.5.jar Datei2: /Users/user.name/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.0.1/57f850a6b317e5582f1dbaff10a9e7d7e1fcdcfb/rxjava-2.0.1.jar
Gibt es überhaupt eine Möglichkeit, sie in einem einzigen Projekt (aber einer anderen Bibliothek) nebeneinander zu haben, oder ist dies definitiv ein Nein-Nein?
auf einen habe ich
compile "io.reactivex:rxjava:1.2.5"
compile "io.reactivex:rxandroid:1.2.1"
auf der anderen habe ich
compile "io.reactivex.rxjava2:rxandroid:2.0.1"
Antworten:
1 für die Antwort № 1Also in Bezug auf diese Dokumentation Sie können theoretisch nebeneinander existieren, da sich die Klassen in verschiedenen Paketen befinden.
Die Fehlermeldung, die Sie erhalten, wird wahrscheinlich nur von der Verpackung des Android in ein Apk verursacht, das versucht, beide Bibliotheken zu importieren und eine Datei gefunden hat, die in beiden Bibliotheken vorhanden ist (siehe dieses Problem).
Sie können diese Datei ignorieren, indem Sie Folgendes in den "android" -Block Ihres Browsers einfügen build.gradle
:
android {
packagingOptions {
exclude "META-INF/rxjava.properties"
}
...
}
Stellen Sie jedoch sicher, dass Sie Ihr Projekt nach dieser Änderung ordnungsgemäß testen.
0 für die Antwort № 2
Sie müssen einige Empfangseigenschaften ausschließen. Füge das hinzu:
android {
...
packagingOptions {
exclude "META-INF/rxjava.properties"
}
}
Zu deiner App gradle bauen