Android Studio: Resolución de clases duplicadas

Cuando intento run mi aplicación Android en un dispositivo Android, la consola gradle informa del siguiente error:

 Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/loopj/android/http/AsyncHttpClient$1.class 

Cuando busco la clase "AsyncHttpClient", veo que realmente se encuentra en dos ubicaciones separadas:

 /Users/Afflatus/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.9/5d171c3cd5343e5997f974561abed21442273fd1/android-async-http-1.4.9-sources.jar!/com/loopj/android/http/AsyncHttpClient.java /Users/Afflatus/.ideaLibSources/android-async-http-1.4.9-sources.jar!/com/loopj/android/http/AsyncHttpClient.java 

El primer camino parece sugerir que es un archivo "caché" … así que he intentado invalidating & restarting my cache , pero ambos archivos siguen ahí después de que el gradle se reconstruye y trato de run la aplicación. He leído en puestos alternativos que se puede resolver mediante la eliminación de uno de los archivos … Así que fui a la ubicación de la caché y se eliminaron todos los archivos que se encuentran en la carpeta "1.4.9" … desafortunadamente después de reabrir Android Studio , Se crea un nuevo archivo de caché y obtengo el mismo error.

Otros posts ( aquí , aquí , aquí y aquí ) sugieren que si agrego "./gradlew clean" al directorio raíz se reconstruirá el gradle de nuevo sólo para la ejecución (por lo que entiendo). Así que traté de hacer eso también:

Introduzca aquí la descripción de la imagen

Lo que hizo que la carpeta de mi aplicación se pareciera a la siguiente:

Introduzca aquí la descripción de la imagen

Pero, desafortunadamente, eso no ayudó a las cosas que todavía obtener el mismo error. ¿Qué estoy haciendo mal? ¿Qué debo hacer?

2 Solutions collect form web for “Android Studio: Resolución de clases duplicadas”

En mi caso, estoy usando sensorocloud.jar y la compile 'com.loopj.android:android-async-http:1.4.9' en mi gradle que causó el mismo error que el tuyo. Debido a que sensoro cloud SDK utilizó async-http loopj.

Me las arreglé para solucionarlo mediante la eliminación manual de los archivos .class duplicados en el archivo jar. (es decir

  1. Cambiando la extensión de jar a zip
  2. Extraerlo
  3. Quitar los archivos .class com.loopj.android )

(PS He intentado buscar a través de la web para ver si podía excluir cierta clase de un tarro en gradle, pero no tener éxito, por ejemplo, he hecho referencia a este post SO )

Su porque usted ha agregado una cierta biblioteca dos veces en la carpeta de las libs , esto podría suceder a veces cuando usted tiene varias versiones de la misma biblioteca en la carpeta de las librerías. Compruébelo y quite cualquier archivo jar duplicado.

Y la segunda opción podría ser que también han añadido la dependencia en gradle.build y también tienen jar en la carpeta libs .

Así que compruebe ambos lugares y elimine las entradas duplicadas y limpie y construya APK nuevo.

Espero eso ayude

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.