java.util.zip.ZipException: entrada duplicada durante packageAllDebugClassesForMultiDex


117

No estoy seguro de lo que significa este error.

Execution failed for task ':excelSior:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/util/TimeUtils.class

Actualmente estoy usando android-support-v4.jarpara mis bibliotecas

dependencies {
    compile project(':addThisSDK')
    compile project(':centeredContentButton')
    compile project(':googleplayservices_lib')
    compile files('libs/adxtag2.4.6.jar')
    compile files('libs/android-support-v4.jar')
    compile files('libs/aws-android-sdk-1.7.1.1-debug.jar')
    compile files('libs/commons-lang-2.6.jar')
    compile files('libs/crittercism_v4_4_0_sdkonly.jar')
    compile files('libs/dd-plist.jar')
    compile files('libs/FiksuAndroidSDK_4.1.1.jar')
    compile files('libs/iqengines-sdk-barcode.jar')
    compile files('libs/irEventTracker-1.2.jar')
    compile files('libs/jolt-core-0.0.7.jar')
    compile files('libs/json-utils-0.0.7.jar')
    compile files('libs/jsoup-1.7.2.jar')
    compile files('libs/kooaba-api-v4-java.jar')
    compile 'com.android.support:multidex:1.0.0'
}

El error no aparece durante la sincronización de Gradle. Justo cuando intento ejecutar la aplicación

¿Cual podría ser el problema?


1
El error se produce cuando cualquier otra dependencia de jar suya tiene la misma clase, asegúrese de no haber agregado jar de soporte tanto como dependencia de gradle como de jar. incluya el cierre completo de la dependencia en la pregunta.
pyus13

@ pyus13 gracias. He actualizado la pregunta. Esta es mi lista completa de dependencias
bman

1
Tienes 3 dependencias de módulo en tu proyecto, así que asegúrate de que solo uno de ellos tenga support-v4 como dependencia.
pyus13

por favor vea mi respuesta en: stackoverflow.com/questions/28168063/…
Tomer

Error: la ejecución falló para la tarea ': Mulugu Astro: transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: android / support / v4 / view / ViewPager $ MyAccessibilityDelegate.class
Harsha

Respuestas:


64

¿Necesita comprobar que ha insertado la biblioteca v4 y la biblioteca de compilación? No debe repetir la biblioteca en su aplicación o su programa de dependencia.

elimine la biblioteca de repetición para que solo quede una V4.

en su build.gradlearchivo dir de la aplicación agregue este comando:

android{


    configurations {
        all*.exclude group: 'com.android.support', module: 'support-v4'
        all*.exclude group: 'com.android.support', module: 'support-annotations'
    }

}

¡esto funciona para mi! ¡Puedes probarlo!


19
Después de agregar estos fragmentos, no puedo obtener soporte de v4, ¿alguna idea?
Nisarg

@Nisarg también me pasa a mí.
CJ_COIMBRA

@Nisarg puede usar gradle recompilar el programa.
GeekHades

@Nisarg¿Puedes ayudarme a volver a compilar? Yo también tengo el mismo problema que el tuyo, los fragmentos y el taskstackbuilder han dejado de resolverse
Gaurav Arora

82

Probablemente ya haya solucionado esto, pero para que no quede sin respuesta, intente agregar esto a su build.gradle:

configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}

4
He agregado la línea de configuraciones pero todavía Error:Execution failed for task ':Analyst:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: com/android/vending/billing/IInAppBillingService$Stub$Proxy.classse muestra.
biswajitGhosh

2
¿Cómo solucionaste el problema?
Arslan Anwar

9
¿Hay alguna solución correcta
? Tengo el

2
Error: (5, 30) error: el paquete android.support.v4.app no ​​existe Recibiendo este error después de agregar su respuesta
Ankit Thakkar

1
¿Dónde se supone que debe ir esto? Soy nuevo en gradle y hay 5 archivos build.gradle en mi proyecto actual, ninguno de ellos tiene configurationsy no parece importar dónde lo coloque, obtengo errores como no puedo resolver el símbolo 'excluir' o no puede resolver el símbolo 'todos'
JStephen

25

También encontré este tipo de problema cuando volví a importar el antiguo proyecto de eclipse. Ocurrió alguna dependencia antigua como archivo jar en el proyecto.

solo quitar

compilar fileTree (dir: 'libs', incluir: '* .jar')

en archivo gradle

y agregue dependencia en el archivo gradle.

Esto funciona para mi ..


Este error ocurrió cuando importé un proyecto de eclipse antiguo, lo siento, en realidad, eliminé parte de la biblioteca de referencia y agregué la misma dependencia en el archivo gradle.
Paraneetharan Saravanaperumal

1
Funcionó para mí (también importando desde la configuración de eclipse anterior). Después de eso, se requirió limpiar y reconstruir.
Paco Abato

17
¿Por qué debería confiar en uno llamado Sauron?
matthias_b_nz

Detuvo este error específico, pero provocó decenas de otros. A veces necesitas esas dependencias. Por extraño que parezca, Sauron tenía razón esta vez.
SMBiggs

1
Al agregar sus dependencias explícitamente, una por una, es probable que descubra una .jarbiblioteca duplicada que está incluyendo dos veces. Nunca lo use compile fileTree(...), oculta demasiados errores obvios.
Joshua Pinter

13

En mi caso, el error de "entrada duplicada" mencionado surgió después de configurarmultiDexEnable=true en build.gradle.

Para resolver completamente el error, primero eche un vistazo a Configurar aplicaciones con métodos de más de 64K (especialmente "Configuración de su aplicación para Multidex con Gradle").

Además, busque ocurrencias de la clase que causa el error de "entrada duplicada" usando ctrl + n en Android Studio. Determine el módulo y la dependencia que contiene el duplicado y excluirlo de la compilación, por ejemplo:

compile ('org.roboguice:roboguice:2.0') {
    exclude module: 'support-v4'
}

Tuve que probar varias etiquetas de módulo hasta que funcionó. Excluir "support-v4" resuelve problemas relacionados con "java.util.zip.ZipException: entrada duplicada: android / support / v4 / *"


9

Tengo entendido que hay referencias duplicadas a la misma API (probablemente diferentes números de versión). Debería ser razonablemente fácil de depurar al compilar desde la línea de comandos.

Intente ./gradlew yourBuildVariantName --debugdesde la línea de comandos.

El artículo infractor será el primer fallo. Un ejemplo podría verse así:

14:32:29.171 [INFO] [org.gradle.api.Task] INPUT: /Users/mydir/Documents/androidApp/BaseApp/build/intermediates/exploded-aar/theOffendingAAR/libs/google-play-services.jar

14:32:29.171 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':BaseApp:packageAllyourBuildVariantNameClassesForMultiDex'

14:32:29.172 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :BaseApp:packageAllyourBuildVariantNameClassesForMultiDex FAILED'

En el caso anterior, el archivo aar que había incluido en mi directorio libs (theOffendingAAR) incluía el archivo jar de Google Play Services (sí, todo, sí, lo sé), mientras que mi archivo de compilación BaseApp utilizaba servicios de ubicación:

compile 'com.google.android.gms:play-services-location:6.5.87'

Puede eliminar de forma segura el elemento infractor de sus archivos de compilación, limpiar y reconstruir (repita si es necesario).


1
Entonces, ¿qué pasa si necesito la biblioteca infractora?
Janusz

1
Esto me ayudó a rastrear la biblioteca infractora :)
speedynomads

1
Esto no ayuda ... al eliminar la biblioteca ofensiva, el módulo no se compila
Utsav Gupta

9

verifique las versiones de sus dependencias, debe tener versiones compatibles, poner atención especialmente a los paquetes com.google, debe tener la misma versión como:

compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.google.android.gms:play-services-maps:8.3.0'

Ambos son 8.3.0, si tiene otra versión, la compilación lanzará esa excepción.


Gracias, hombre, Funciona perfectamente, tengo tres servicios de Google Play diferentes compilar 'com.google.android.gms: play-services-analytics: 8.4.0' compilar 'com.google.android.gms: play-services-ads: 8.3 .0 'compile' com.google.android.gms: play-services-plus: 8.4.0 '
Samadhan Medge

5

Simplemente elimine su archivo Jar de las dependencias gardle.project como v7 y ejecute su proyecto


Eso es un trabajo para mí, simplemente elimine los "archivos de compilación ('libs / android-support-v13.jar')" de las "dependencias" en mi "build.gradle (Módulo: aplicación)". Como referencia, aparece este error después de importar el formulario del proyecto eclipse a Android Studio.
rafaellorey

5

Para Expose.class Error, es decir

java.util.zip.ZipException: entrada duplicada: com / google / gson / annotations / Expose.class

usa el siguiente código

configurations {
    all*.exclude  module: 'gson'
}

11
El OP no dijo nada al respecto gson.
IgorGanapolsky

3

averigüe que la lib depende del soporte v4 y excluyala.

el código build.gradlees así:

androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.1') {
    // http://stackoverflow.com/a/30931887/5210
    exclude group: 'com.android.support', module: 'appcompat'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude module: 'recyclerview-v7'
}

En mi situación, la lib 'espresso' tiene un frasco llamado support-v4 y en mi proyecto 'app' tiene el mismo soporte-v4, excluya el soporte-v4 al importar espresso.

PD: parece compile projectque no puede funcionar con elexclude


1

Esto se debe a que ha agregado una biblioteca y ha dado su dependencia de un módulo más de una vez.

En mi caso, había agregado una biblioteca como módulo y como dependencia de gradle tanto.

Eliminar una fuente para agregar biblioteca (eliminé la dependencia de gradle) resolvió mi problema.


alternativamente, este problema se solucionó para mí eliminando el jar del directorio libs y manteniendo la dependencia de gradle.
droideckar

¡Yeh! Eliminar cualquier fuente única resolverá el problema. Mantener la dependencia de Gradle es bueno.
Rahul Rastogi

0

Para Error: Error en la ejecución de la tarea ': app: transformClassesWithJarMergingForDebug' com.android.build.api.transform.TransformException java.util.zip.ZipException entrada duplicada com / google / gson / annotations / Expose.class

Aquí esta lo que hice:

1) Elimine el archivo gson-2.5.jar. 2) configuraciones {todos * .exclude módulo: 'gson-2.5'}


La pregunta no era sobre Gson
OneCricketeer

0

Me he enfrentado a este problema porque he copiado manualmente el jar en las bibliotecas y mencioné la dependencia en el archivo gradle. También verifica la estructura de su proyecto, si el mismo archivo jar se copia en cualquier otra carpeta como libs o en la carpeta del proyecto.


0

Tuve el mismo problema después de actualizar el SDK de Android. Pude ejecutar la aplicación en el buildToolsVersion '23.0.1', obtuve el mismo error cuando cambié abuildToolsVersion '24.0.3'

Resolví el problema actualizando mi versión de Java de 1.7 a 1.8 con compileSdkVersion 24


0

Este problema me costó un día entero. Finalmente bajé la versión de la biblioteca firebase-ui de 2.0.0 a 1.2.0 y agregué el siguiente código dentro del archivo build.gradle de nivel de proyecto:

allprojects {
    repositories {
        jcenter()

        // Add the following code to your project level build.gradle
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
}

1
La versión de la interfaz de usuario de Firebase depende de la versión de Firebase que compiló realmente
OneCricketeer

0

También tengo el problema porque he compilado 'com.android.support:appcompat-v7:24.0.0-alpha1' pero agregué la compilación de RecyclerView liberary 'com.android.support:recyclerview-v7:24.0.2' .. Cambié la versión de la misma manera que la compatibilidad (24.0.2 en lugar de 24.0.0).

Tengo la respuesta ... puede que ayude a alguien.


0

En mi caso, el error de "entrada duplicada" mencionado surgió después de establecer multiDexEnable = true en build.gradle.

y el error exacto que estaba obteniendo estaba a continuación:

Error:Execution failed for task 
':android:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: 
java.util.zip.ZipException: duplicate entry: 
com/google/android/gms/internal/zzqx.class

Entonces, lo primero que busco es la clase que causa el error de "entrada duplicada" usando ctrl + n en Android Studio y busqué com / google / android / gms / internal / zzqx.class y luego estaba mostrando 2 entradas para la clase gms con una versión 8.4.0 y 1 con la versión 11.6.0.

Para solucionarlo, hice que ambos usaran 11.6.0 y fue un ejemplo fijo

más temprano

    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:8.4.0"
    compile "com.google.android.gms:play-services-ads:11.6.0"

Después

    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:11.6.0"
    compile "com.google.android.gms:play-services-ads:11.6.0"

Reconstrucción fija.


0

En mi caso, el error exacto estaba debajo

': android: transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: com / google / android / gms / internal / zzqx.class

Estaba usando otra versión de google apis, es decir, en un archivo gradle de módulos

if (!project.hasProperty('gms_library_version')) {
        ext.gms_library_version = '8.6.0'
   }

sin embargo, en otros módulos la versión 11.6.0 como se muestra a continuación

   compile "com.google.android.gms:play-services-ads:11.6.0"
    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:11.6.0"

Sin embargo, para encontrar esto, hice ctrl + n en Android Studio e ingresé el nombre de clase zzqx.class y luego mostró 2 archivos jar que se extrajeron para esta clase y luego entendí que en algún lugar estoy usando la versión 8.6.0. Al cambiar 8.6.0 a 11.6.0 y reconstruir el proyecto, se solucionó el problema.

Espero que esto ayude .

Más sobre esto aquí https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/


0

Para mí sucedió algo similar cuando accidentalmente agregué

apply plugin: 'kotlin-android'

a mi módulo de biblioteca de Android. Eliminar la línea soluciona el problema.


0

Probé todas las soluciones anteriores pero no me funcionó. Intenté actualizar las bibliotecas por goto project structure> app. ¡Y funciona para mi! Espero que esta respuesta sea útil para alguien.


-1

Prueba esto:

android {
configurations {
        all*.exclude  module: 'PhotoView'  //去除重复依赖库
    }
}

Esta pregunta es sobre la biblioteca de soporte v4, no PhotoView
OneCricketeer

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.