Android Studio estaba obteniendo un error de compilación mientras se ejecutaba la compilación con lo siguiente:
Error: la ejecución falló para la tarea ': aplicación: transformDexArchiveWithExternalLibsDexMergerForDebug'. java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: No se puede fusionar dex "
Mi aplicación: archivo build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.pdroid.foodieschoice"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
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.constraint:constraint-layout:1.0.2'
compile 'com.firebaseui:firebase-ui-auth:2.3.0'
testCompile 'junit:junit:4.12'
}
configurations.all {
resolutionStrategy {
force 'com.android.support:appcompat-v7:26.0.1'
force 'com.android.support:support-compat:26.0.1'
force 'com.android.support:support-core-ui:26.0.1'
force 'com.android.support:support-annotations:26.0.1'
force 'com.android.support:recyclerview-v7:26.0.1'
}
}
apply plugin: 'com.google.gms.google-services'
cualquier solución
Editar: terminé con la muestra a través del sitio de github de firebase y lo resolví
android
android-studio-3.0
build-error
Anguraj
fuente
fuente
Respuestas:
Para el proyecto basado en Cordova, ejecútelo
cordova clean android
antes de compilar nuevamente, como sugirió @mkimmet .fuente
Este error ocurre cuando agrega una biblioteca externa que puede no ser compatible con su
compileSdkVersion
.Tenga cuidado al agregar un
external library
.Pasé 2 días en este problema y finalmente se resolvió siguiendo estos pasos.
Asegúrese de que todas sus bibliotecas de soporte sean las mismas que las
compileSdkVersion
suyasbuild.gradle(Module:app)
en mi caso26
.En su categoría defaultConfig, escriba multiDexEnabled true . Esta es la parte importante.
Ir a Archivo | Configuraciones | Construcción, ejecución, implementación | Ejecutar instantánea y tratar de Activar / Desactivar instantánea Ejecutar para intercambio en caliente ... y haga clic bien
Sync
Tu proyecto.Por último, vaya a Construir | haga clic en Reconstruir proyecto .
Nota: Rebuild Project primero limpia y luego construye el proyecto.
fuente
Intenta agregar esto en gradle
android { defaultConfig { multiDexEnabled true } }
fuente
Resolución:
Consulte este enlace : Como hay varias opciones para apagar la advertencia según la minSdkVersion, se establece por debajo de 20 :
android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.3' }
Si tiene una minSdkVersion mayor que 20 en su conjunto build.gradle, use lo siguiente para apagar la advertencia:
android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 26 multiDexEnabled true } ... }
Actualice las dependencias de la siguiente manera:
dependencies { implementation 'com.android.support:multidex:1.0.3' }
Nuevamente, la única diferencia son las palabras clave en las dependencias:
minSdkVersion por debajo de 20: use compilar
minSdkVersion por encima de 20: implementación de uso
fuente
Simplemente intente hacer un "Proyecto -> Limpiar". Eso me resolvió el problema.
fuente
Para mi, agregando
multiDexEnabled true
y
packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/notice' exclude 'META-INF/notice.txt' exclude 'META-INF/license' exclude 'META-INF/license.txt' }
en el archivo Build.gradle de nivel de aplicación resolvió el problema
fuente
Vaya a su
build.gradle
archivo de nivel de módulo y agregue las siguientes líneas al códigodefaultConfig { ... minSdkVersion 15 targetSdkVersion 28 multiDexEnabled true } ... } dependencies { implementation 'com.android.support:multidex:1.0.3' }
Eso resolvió el problema fácilmente. Consulta esta documentación
fuente
Utilice multiDexEnabled true como se muestra a continuación.
{ minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
y
implementation 'com.android.support:multidex:1.0.3'
esta solución funcionó para mí.
fuente
Probé muchas soluciones como se mencionó anteriormente, incluido el multiDexEnabled true, pero nada de eso funcionó para mí.
Aquí está la solución que funcionó para mí: copie este código en el archivo app \ build.gradle
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support' && requested.name != 'multidex') { details.useVersion "${rootProject.ext.supportLibVersion}" } } }
Asegúrese de ejecutar gradlew clean antes de ejecutar el código
fuente
A mí me pasó lo mismo, me di cuenta de que estaba en medio de la actualización a AS 3.0.1 y después de actualizar, limpiar y reconstruir la aplicación, todo quedó arreglado.
fuente
Para mí, lo que solucionó este error fue cambiar una línea en las dependencias de gradle de mi aplicación.
de esto :
compile('com.google.android.gms:play-services-gcm:+') { force = true }
A esto :
compile('com.google.android.gms:play-services-gcm:11.8.0') { force = true }
fuente
También asegúrese de que su aplicación esté subclasificando MultiDexApplication
import android.support.multidex.MultiDexApplication class App : MultiDexApplication()
o si no está subclasificando la clase Application, agréguela a AndroidManifest.xml
<application android:name="android.support.multidex.MultiDexApplication"
fuente
¿Está entre actualizaciones de la plataforma o del SDK? Si es así, complételos por completo y luego intente continuar. Normalmente actualizo los paquetes individuales que deben actualizarse para tomar la actualización completa, que a veces puede llegar a 2.5 GB. Hacer esta actualización completa a veces falla. Tuve varias actualizaciones de SDK una vez que actualicé a Android Studio 3.0 y recibí el error anterior porque no se habían actualizado todos los paquetes. Una vez que actualicé todos los paquetes, el error anterior desapareció.
fuente
En mi caso, cambiar la versión de la biblioteca de firebase de 2.6.0 a 2.4.2 solucionó el problema
fuente
Para mí, el problema fue el uso de Java 1.8 en un módulo, pero no en el módulo de la aplicación. Agregué esto a la compilación de la aplicación gradle y trabajé:
android{ compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
fuente
El mismo problema. He habilitado multidex: defaultConfig {applicationId "xxx.xxx.xxxx" minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true
He borrado el caché, ejecuté gradle clean, reconstruí, hice, intenté asegurarme de que no haya conflictos en las bibliotecas importadas (eliminé todas las dependencias transitivas) y realicé todas las actualizaciones. Todavía:
Resulta que a la compilación no le gustó: implementación 'org.slf4j: slf4j-android: 1.7.21'
fuente
Cuando la versión de Android Studio es 3.0.1, la versión de Gradle es 4.1 y Android PluginVersion es 3.0.0, encontrará este problema. Luego bajé la versión de Gradle a 3.3, Android Android es cero, no hay tal problema.
fuente
Tuve esto cuando la versión del SDK solicitada no coincidía con las dependencias. Puede hacer clic en la línea resaltada y arreglar esto haciendo clic en la bombilla roja. No es necesario encontrar la versión real, simplemente deje que el IDE lo descubra por usted. Y agregue el repositorio de Google a la configuración de Maven.
fuente
Recibí el mismo error y, en mi caso, el error se resolvió cuando solucioné un error de compilación que estaba asociado con una variante de compilación diferente a la que estaba construyendo actualmente.
Estaba construyendo la variante de compilación que estaba viendo bien sin errores, pero intentar depurar causó un
app:transformDexArchiveWithExternalLibsDexMergerForDebug
error. Una vez que cambié para compilar la otra variante de compilación, detecté mi error en el proceso de compilación y lo solucioné. Esto pareció resolver miapp:transformDexArchiveWithExternalLibsDexMergerForDebug
problema para todas las variantes de compilación.Tenga en cuenta que este error no estaba dentro del módulo externo al que se hace referencia, sino dentro de un conjunto de fuentes distinto de una variante de compilación que hace referencia a un módulo externo. ¡Espero que sea útil para alguien que pueda estar viendo el mismo caso que yo!
fuente
He hecho y solucioné este problema simplemente haciendo estos trabajos en mi código
Abrir -> build.gradle Cambiar valor de
compile 'com.google.code.gson:gson:2.6.1'
a
compile 'com.google.code.gson:gson:2.8.2'
fuente
Para eliminar este problema de Dex, simplemente implemente una dependencia. Este problema ocurre cuando usamos varios servicios diferentes del mismo servidor. Supongamos que estamos usando anuncios y Firestore en un proyecto y ambos tienen un experto en repositorios. por lo que necesitamos llamar a diferentes datos con un repositorio, necesitamos la dependencia dex para implementar. La nueva dependencia de actualización: -
implementation 'com.android.support:multidex:1.0.3'
Estoy seguro de que resolverá tu problema de forma permanente
fuente
android {compileSdkVersion 28 defaultConfig {
minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
fuente
La forma más sencilla de evitar errores de succión es:
-Cambiar la biblioteca combilesdkversion de la misma forma que su aplicación compilesdkversion
-Cambiar la versión supportLibrary de la biblioteca de la misma manera que su build.gradle (aplicación)
fuente
Esto es lo que me funciona. limpiar, preparar y ejecutar.
cordova clean android; ionic cordova prepare andriod; ionic cordova run andriod;
Espero eso ayude.
fuente
También recibí un error similar.
La causa principal de este problema es que multiDex no está habilitado. Entonces, en el Proyecto / android / app / build.gradle , habilite multiDex
Para obtener más información, consulte la documentación: https://developer.android.com/studio/build/multidex#mdex-gradle
fuente
Siempre puede volver a DX por ahora a través de esta configuración en el
gradle.properties
archivo de su proyecto :android.enableD8=false
Para obtener más información, consulte https://android-developers.googleblog.com/2018/04/android-studio-switching-to-d8-dexer.html
fuente