Android Gradle compilar commons-io crea duplicado en el árbol de la biblioteca

Estoy tratando de construir y mantener una antigua aplicación para el trabajo, pero no puedo pasar la fase de construcción. En mi archivo app/build.gradle tengo

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.apache.commons:commons-io:1.3.2' //some more libraries compiled as well } 

Pero obtiene el siguiente error al intentar ejecutar:

Error: Error de ejecución para la tarea ': myApp'. Com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: org / apache / commons / io / CopyUtils.class

Esto es casi seguro porque cuando compile ese tarro, en la parte superior de mi árbol de bibliotecas externas, esto se genera:

Introduzca aquí la descripción de la imagen

¿Por qué sucede esto, y cómo puedo conseguir que se detenga para poder completar la compilación?

Hay una manera simple de excluir las clases dobles. Al principio usted necesita saber qué dependencia está causando que si usted sabe que usar este código:

 compile('com.example:some-dependency:4.2') { exclude module: 'commons-io' } 

Hay una opción para solucionarlo en el nivel de resolución de dependencia de gradle

 configurations.all { resolutionStrategy.dependencySubstitution { substitute module('org.apache.commons:commons-io:1.3.2') with module('commons-io:commons-io:1.3.2') } } 

La razón del conflicto es que org.apache.commons:commons-io:1.3.2 fue empujado por error https://stackoverflow.com/a/37421794/624706

Puedes ver de dónde viene la dependencia con

gradle :main:dependencyInsight --configuration compile --dependency commons-io

Sé que este hilo es bastante viejo, pero si alguien hace frente a este problema, la razón puede estar en el artefacto sí mismo.

com.apache.commons:commons-io:XXX se ha movido a commons-io:commons-io:XXX y la recuperación del antiguo artefacto puede producir un comportamiento inesperado.

Podría ser posible que otras bibliotecas en el proyecto tengan la dependencia de commons-io causando entradas duplicadas.

Ver si esto ayuda – Gradle Duplicate Entry: java.util.zip.ZipException

  • ¿Cómo comparte las variables con otras actividades fácilmente?
  • Android: ExpandableListViews y casillas de verificación
  • Cómo eliminar algunas palabras de una cadena en java
  • Java / Android: Lectura / escritura de una matriz de bytes sobre un socket
  • CountDownTimer.cancel () no funciona en Android
  • Android Instrumentación de Pruebas - UI Thread Issues
  • Posible alternativa a las clases internas estáticas para evitar fugas de memoria en android / java?
  • Llamar a un objeto java guardado a través de JNI desde un hilo diferente
  • Cómo convertir datos sin formato PCM en archivos mp3?
  • ¿Por qué mi JsonObjectRequest no funciona?
  • Compartir recursos entre el contexto de OpenGL en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.