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