while unable tag studio merging error dexing dexarchivemergerexception archives android gradle merge dex android-studio-3.0

unable - com.android.builder.dexing.DexArchiveMergerException: no se puede combinar dex-Android Studio 3.0 estable



unable to merge dex android studio (5)

Estaba teniendo un problema con esto, y ninguna de las respuestas que encontré funcionó. Finalmente encontré una solución, compartiéndola aquí aunque no puedo decirte definitivamente cómo encontrar cuál es la dependencia ofensiva, tal vez tengas que hacer un poco de prueba y error.

En mi build.gradle (Módulo: aplicación) agregué esta cláusula de exclusión:

compile (''org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'') { exclude module: ''support-v4'' }

Hice:

  • En "Configuración" -> "Android SDK" -> "Herramientas del SDK", los servicios de Google Play están verificados e instalados v.46
  • Carpeta eliminada /.gradle
  • "Proyecto limpio"
  • "Proyecto de reconstrucción

Error es

Error:Execution failed for task '':app:transformDexArchiveWithExternalLibsDexMergerForDebug''. > java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

Proyecto build.gradle

buildscript { repositories { jcenter() } dependencies { classpath ''com.android.tools.build:gradle:3.0.0'' classpath ''com.google.gms:google-services:3.1.0'' } } allprojects { repositories { jcenter() google() } } task clean(type: Delete) { delete rootProject.buildDir }

Aplicación build.gradle

apply plugin: ''com.android.application'' android { compileSdkVersion 26 buildToolsVersion ''26.0.2'' defaultConfig { applicationId "com.asanquran.mnaum.quranasaanurdutarjuma" minSdkVersion 15 targetSdkVersion 26 versionCode 3 versionName "1.3" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', { exclude group: ''com.android.support'', module: ''support-annotations'' }) compile ''com.android.support:appcompat-v7:26.+'' compile ''com.android.support.constraint:constraint-layout:1.0.2'' compile ''com.google.android.gms:play-services-ads:11.4.2'' compile ''com.github.barteksc:android-pdf-viewer:2.3.0'' compile ''org.apache.commons:commons-io:1.3.2'' compile ''com.google.firebase:firebase-ads:11.4.2'' compile ''com.google.firebase:firebase-messaging:11.4.2'' compile ''com.google.firebase:firebase-storage:11.4.2'' apply plugin: ''com.google.gms.google-services'' testCompile ''junit:junit:4.12'' } apply plugin: ''com.google.gms.google-services''

Por favor, ayúdame, ¿qué debo hacer ahora?

Por favor, no lo marque duplicado. He probado casi todas las soluciones.


Hice exactamente como la sugerencia en la imagen, excepto que cambió 11.0.4 a 11.8.0

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


Sé que es demasiado tarde para actualizar. Tuve el mismo problema en mi proyecto.

Posibles razones

  1. Si ha agregado un módulo en su proyecto y ese módulo tiene bibliotecas de soporte o cualquier biblioteca de servicios de Google Play que tenga una versión diferente de su aplicación.
  2. Si está utilizando una biblioteca de código abierto en su proyecto y esa biblioteca internamente utilizando cualquiera de las bibliotecas que también está utilizando en su proyecto.

Soluciones

  • Si es el caso 1 en su proyecto, entonces actualice las versiones de su biblioteca y hágala igual en su proyecto y módulo.
  • Verifique su árbol de dependencias usando el comando a continuación y vea si hay discrepancias en las dependencias.

    ./gradlew :app:dependencies

  • Puede excluir módulos particulares de cualquier dependencia como la que se muestra a continuación.

    implementation(''com.google.android.ads.consent:consent-library:1.0.4'') { transitive = true exclude group: "com.android.support" }

  • En el ejemplo anterior, se excluirá el grupo com.android.support de las dependencias de la biblioteca de consentimiento.

  • También puede eliminar un módulo particular también.

    compile (''junit:junit:4.12''){ exclude group: ''org.hamcrest'', module:''hamcrest-core'' }

  • En el ejemplo anterior, se excluirá hamcrest-core de org.hamcrest .


Tuve el mismo problema, agregando sourceCompatibility y targetCompatibility a mi build.gradle me ayudó a:

android { compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } }


en mi caso, cambio todas las com.android.support: bibliotecas a 27.1.0 y funciona