tutorial rxjava2 rxjava programming para example android android-gradle rx-java rx-android

android - rxjava2 - Cómo resolver archivos duplicados copiados en APK META-INF/rxjava.properties



rxjava para android (5)

Estoy usando rxjava y rxvolley en mi aplicación de Android. Cuando intento ejecutarlo me sale este error.

Execution failed for task '':testapp:transformResourcesWithMergeJavaResForDebug''. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties File1: C:/Users/Daniel/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.0/748f0546d5c3c27f1aef07270ffea0c45f0c42a4/rxjava-1.1.0.jar File2: C:/Users/Daniel/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.0.3/d2f725668bd22e21170381b23f8fbdf72c69d886/rxjava-2.0.3.jar

Tengo un archivo exclude.gradle como este

android { packagingOptions { exclude ''META-INF/DEPENDENCIES.txt'' exclude ''META-INF/NOTICE'' exclude ''META-INF/NOTICE.txt'' exclude ''META-INF/LICENSE'' exclude ''META-INF/LICENSE.txt'' exclude ''META-INF/rxjava.properties'' exclude ''META-INF/rxjava.PROPERTIES'' exclude ''META-INF/RXJAVA.properties'' exclude ''META-INF/RXJAVA.PROPERTIES'' exclude ''META-INF/rxjava'' exclude ''META-INF/RXJAVA'' } lintOptions { abortOnError false } }

¿Como puedo solucionar este problema?


Encontré el mismo problema y lo arreglé poniendo el código a continuación en el archivo app / build.gradle. Tenga en cuenta que debe colocar ''*'' al final de la ruta para excluir todos los archivos dentro de la carpeta. Tendrá que cambiar la ruta de los archivos que se excluirán en el siguiente código según la descripción del error.

compileSdkVersion 25 buildToolsVersion "24.0.3" packagingOptions { exclude ''com/google/appengine/repackaged/org/apache/commons/codec/language/bm/*'' exclude ''com/google/appengine/repackaged/org/codehaus/jackson/impl/*'' exclude ''com/google/appengine/repackaged/org/apache/commons/codec/language/*'' }


También tengo este problema, también usé el mismo método que tú, pero como tengo dos módulos, solo lo modifiqué en el módulo que dependía de Rxjava.

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


Tuve el mismo problema.
En mi caso, estoy usando Retrofit2 pero asumo que el problema es con las rx libraries

Este es el build.gradle (module:app) que estoy usando y en mi caso funciona.

compile ''com.squareup.retrofit2:retrofit:2.0.2'' compile ''com.squareup.retrofit2:converter-gson:2.0.2'' compile ''com.squareup.retrofit2:adapter-rxjava:2.0.2'' compile ''io.reactivex:rxandroid:1.1.0'' //<-use this compile ''io.reactivex:rxjava:1.1.3'' //<-use this compile ''com.squareup.okhttp3:okhttp:3.1.2'' compile ''com.squareup.okhttp3:logging-interceptor:3.0.1''

De todos modos hay una solución mejor como se puede ver en la parte superior.


Tuve este problema hoy y solucioné este problema

compile ''com.squareup.retrofit2:retrofit:2.2.0'' compile ''com.squareup.retrofit2:converter-gson:2.2.0'' compile ''com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'' //RxJava dependencies compile ''io.reactivex.rxjava2:rxandroid:2.0.0'' compile ''io.reactivex.rxjava2:rxjava:2.0.2'' compile ''org.reactivestreams:reactive-streams:1.0.0''


Yo tuve el mismo problema. La forma en que lo arreglé es agregando el packagingOptions en la aplicación gradle como se describe en el archivo duplicado rxjava.properties

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