Cómo resolver los archivos duplicados copiados en APK META-INF / rxjava.properties
Estoy usando rxjava y rxvolley en mi aplicación de Android. Cuando intento ejecutarlo, obtengo 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
- Retrofit 2.0 + RxJava + Error JSON cuerpo
- ¿Cómo crear un Observable en Android?
- Desbordamiento de pila al utilizar Retrofit rxjava concatWith
- Cómo manejar clics de artículo para una vista de reciclar usando RxJava
- ¿Cómo ejecutar 2 consultas secuencialmente en un Android RxJava Observable?
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?
- RXJava - ejecuta múltiples observables tras otro (como concat, pero con onCompleted para cada observable)
- Obtenga el valor actual de RxJava Observable
- Encadenamiento de solicitudes en Retrofit + RxJava
- En RxJava, cómo reintentar / reanudar en caso de error, en lugar de completar el observable
- Observable.just () que devuelve Unidad en Kotlin
- RxJava y eventos esporádicos al azar en Android
- Realm + Retrofit + Rxjava
- RxJava: Cómo aplicar condicionalmente a los operadores a un observable sin romper la cadena
Tuve el mismo problema. Supongo que es un error con la compatibilidad de las bibliotecas.
En mi caso estoy utilizando Retrofit2
pero supongo 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'
Yo tuve el mismo problema. La forma en que lo arreglé es agregar las packaginOptions
en gradle de aplicación como se describe en el archivo duplicado rxjava.properties
android { defaultConfig { } buildTypes { } packagingOptions{ exclude 'META-INF/rxjava.properties' } }
Encontré el mismo problema y lo arreglé poniendo debajo del código en el archivo de 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 acceso de los archivos que se van a excluir en el código siguiente basado en 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/*' }
He tenido este problema hoy y solucionado 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'