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?

bman
fuente
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!

GeekHades
fuente
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'
}
zwebie
fuente
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 ..

Paraneetharan Saravanaperumal
fuente
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 / *"

b00n12
fuente
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).

usuario01000101
fuente
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.

Codificación Ninja
fuente
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

sanjay kumar thakur
fuente
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'
}
Laveen Balakrishna
fuente
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

Ninja
fuente
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.

Rahul Rastogi
fuente
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'}

LEMUEL ADANE
fuente
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.

Ashish Rawat
fuente
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

Muhamed Riyas M
fuente
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'
        }
    }
}
Darush
fuente
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.

S HemaNandhini
fuente
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.

paarth batra
fuente
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/

paarth batra
fuente
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.

A. Steenbergen
fuente
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.

Pooja
fuente
-1

Prueba esto:

android {
configurations {
        all*.exclude  module: 'PhotoView'  //去除重复依赖库
    }
}
纯洁 的 坏蛋
fuente
Esta pregunta es sobre la biblioteca de soporte v4, no PhotoView
OneCricketeer
-1

simplemente borre android / support / v4 / util / TimeUtils.class

jas-chu
fuente
Jesucristo no
sfratini