services play google gms compile auth java android android-studio google-play-services

java - auth - compile com google android gms play services 11.8 0



EXCEPCIÓN DE NIVEL SUPERIOR INESPERADO: com.android.dex.DexException: se definen varios archivos dex (3)

El error se produce cuando tiene la misma biblioteca / directorio incluido más de una vez en las dependencias de su build.gradle. Ok, digamos que tienes una estructura de aplicación que se ve así:

Así que tienes la "aplicación" principal y luego tienes un montón de sub-aplicaciones / módulos / bibliotecas. Las bibliotecas son: 1) gene_test_library , 2) genes_nine_old_androids_library , y 3) swipe_list_view_library .

Mi nombre es Gene, por eso hay todas estas bibliotecas de "genes".

Dentro de build.gradle para “app” , tengo:

dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:21.0.0'' compile project('':libraries:gene_test_library'') //compile project('':libraries:genes_nine_old_androids_library'') compile project('':libraries:swipe_list_view_library'') }

Dentro de build.gradle para gene_test_library , no tengo nada:

dependencies { }

Dentro de build.gradle para gene_nine_old_androids_library , tengo:

dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) compile ''com.android.support:appcompat-v7:21.0.0'' }

Dentro de build.gradle para swipe_list_view_library , tengo:

dependencies { compile ''com.nineoldandroids:library:2.4.0+'' compile fileTree(dir: ''libs'', include: [''*.jar'']) compile ''com.android.support:appcompat-v7:21.0.0'' }

Esta línea de código compile fileTree(dir: ''libs'', include: [''*.jar'']) solo significa "hey, mira dentro de la carpeta ''libs'' dentro de este módulo para cualquier archivo jar. No tengo nada en la carpeta libs de ninguno de los módulos, así que puedes ignorar esa línea de código.

Así que digamos que descomento //compile project('':libraries:genes_nine_old_androids_library'') en el build.gradle para el módulo de “app” . Luego obtendría el error “UNEXPECTED TOP-LEVEL EXCEPTION:” error. ¿Porqué es eso?

Bueno, escribir //compile project('':libraries:genes_nine_old_androids_library'') dentro del build.gradle para “app” , es lo mismo que tomar las dependencias de “genes_nine_old_androids_library” módulo “genes_nine_old_androids_library” y colocarlo allí. Por lo tanto, al build.gradle la declaración //compile project('':libraries:genes_nine_old_androids_library'') , el build.gradle para "app" se convierte en:

dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:21.0.0'' compile project('':libraries:gene_test_library'') ***compile fileTree(dir: ''libs'', include: [''*.jar''])*** ***compile ''com.android.support:appcompat-v7:21.0.0''*** compile project('':libraries:swipe_list_view_library'') }

Observe cómo ahora la compile ''com.android.support:appcompat-v7:21.0.0'' muestra 2x. De ahí es de donde viene el error.

Tengo problemas para utilizar los servicios de Google Play en mi aplicación de Android con Android Studio.

Lo he intentado todo y todavía no funciona.

Este es el error.

Execution failed for task '':app:dexDebug''.

com.android.ide.common.internal.LoggedErrorException: Error al ejecutar el comando: / Users / jghg / Desktop / My App / Android / SDK / android-sdk-mac_86 / build-tools / 19.0.1 / dx --dex - -output / Users / jghg / Desktop / My App / Eureka / UDA / app / build / libs / app-debug.dex / Users / jghg / Desktop / My App / Eureka / UDA / app / build / classes / debug / Users / jghg / Desktop / My App / Eureka / UDA / app / build / dependency-cache / debug / Users / jghg / Desktop / My App / Eureka / UDA / app / build / pre-dexed / debug / classes-08979151dd1373bd3f799299d93376d22d4dc13.bd / Usuarios / jghg / escritorio / Mi Aplicación / Eureka / UDA / app / build / pre-dexed / debug / clases-167b9d3c5d689abe004c3fa5b0bcb945d3f0fc8e.jar / Usuarios / jghg / escritorio / Mi Aplicación / Eureka / UDA / app / build / pre-dexed /debug/google-play-services-ec20f8af7bb457c5095cae1afa0cee722582f198.jar / Users / jghg / Desktop / My App / Eureka / tipo de inspección de la naturaleza de la naturaleza de la naturaleza de la naturaleza de la naturaleza de la naturaleza de la naturaleza de la naturaleza. jghg / Desktop / My App / Eureka / UDA / app / build / pre-dexed / debug / support-v4-19.0.1-861cc05365a0e9262c764da37d61e3f93dc16de6.jar / Users / jgh g / Desktop / My App / Eureka / UDA / app / build / pre-dexed / debug / support-v4-19.0.1-dcc11377c764caea791f711123b8b678f876c3b6.jar / Users / jghg / Desktop / My App / Eureka / UDA / app / build / pre-dexed / debug / twitter4j-async-3.0.5-0904cb320186fb23a9a9bf25a048c5bc4ec07bc2.jar / Users / jghg / Escritorio / propio / de la persona / persona / persona / persona / persona / persona / persona / persona / persona / persona mayor / de la naturaleza / vt / v / v / v / v / v / v / quo / v / v / v / v / v / v / vg / vg / vg / vg / vg / vg / vg / vg / vg / vg / vg / vg / vg / vg / vg / vg / v / vg / vg / v / vg / vg / v / vg / v / vg / v / vg / v / vg / v / vg / v / vt / v / v / v / v / v / v / v / v / v / v / vg / quad / v / v / v / v / v / v / v / v / v / v / v / v / v / v / v / v / vg / quad / v / g .jar / Users / jghg / Desktop / My App / Eureka / UDA / app / build / pre-dexed / debug / twitter4j-examples-3.0.5-adc1ee9b037c8061429560e6a5fe89ce8e502db6.jar / Users / jghg / Desktop / My App / Eureka / UDA /app/build/pre-dexed/debug/twitter4j-media-support-3.0.5-37d138cdc631738d13ddb6f4d34c560a9cd8e048.jar / users / jghg / Desktop / My App / Eurek / UDA / app / build / pre / qux / qux / qux / Desktop / My App / Eureka / UDA / app / build / pre / qux / qux / Desktop stream-3.0.5-c96c138ea216b25631a1a8b47520ecaf33f288d8.jar Código de error: 2 Salida: EXCEPCIÓN INESPERADA DE NIVEL SUPERIOR: com.android.dex.DexException: Varios archivos dex definen el código de error Lcom / google / ads / AdRequest; at com.android.dx.merge.DexMerger.readSortableTypes (DexMerger.java:594) en com.android.dx.merge.DexMerger.getSortedTypes (DexMerger.java:552) en com.android.dx.merge.DexMerger.mergeClass (DexMerger.java:533) en com.android.dx.merge.DexMerger.mergeDexes (DexMerger.java:170) en com.android.dx.merge.DexMerger.merge (DexMerger.java:188) en com.android. dx.command.dexer.Main.mergeLibraryDexBuffers (Main.java:439) en com.android.dx.command.dexer.Main.runMonoDex (Main.java:287) en com.android.dx.command.dexer.Main. ejecutar (Main.java:230) en com.android.dx.command.dexer.Main.main (Main.java:199) en com.android.dx.command.Main.main (Main.java:103)

Gracias. Atentamente.


Su biblioteca de servicios de Google Play se está exportando desde otras dependencias de su proyecto y, en el momento de la compilación, el compilador dex se confunde.

Si está utilizando Gradle, incluir esto en el build.gradle de su proyecto debería excluir la biblioteca de soporte para que no se exporte a su proyecto principal.

apply plugin: ''android'' apply plugin: ''crashlytics'' /** Must exclude exported support jars from dependencies, or get dex duplicate class error. * we''re **/ configurations { all*.exclude group: ''com.android.support'', module: ''support-v4'' all*.exclude group: ''com.google.android.gms'', module: ''play-services'' }

Si estás usando el sistema de construcción de andoid studio. Luego debe ir a Archivo -> estructura del proyecto y deshabilitar -> módulos. Ir a través de cada módulo y haga clic en la pestaña de dependencia, desmarque la columna de exportación para la biblioteca de soporte y la biblioteca de servicios de Google Play.

Publicar comentarios si necesita más ayuda.


También podría suceder si tiene diferentes versiones de la misma biblioteca importadas en su build.gradle o una en una de sus bibliotecas. Por ejemplo, los servicios de Google Play Store requieren que todos ellos se refieran a la misma versión que tenía:

aplicación build.gradle

compile ''com.google.android.gms:play-services-base:7.5.0''

mientras:

módulo / biblioteca build.gradle

compile ''com.google.android.gms:play-services-cast:7.8.+''

Actualizar la versión de mi aplicación a 7.8.0 solucionó el problema