Tengo Android Studio Beta. Creé un nuevo proyecto con la compilación de mis módulos anteriores, pero cuando intenté iniciar la aplicación, no se lanzó con el mensaje:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException: no se puede combinar dex
Pero no sé cómo resolver este error. Busqué en Google esto durante horas pero sin éxito.
Mi proyecto gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta6'
classpath "io.realm:realm-gradle-plugin:3.7.1"
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Mi aplicación gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "parad0x.sk.onlyforyou"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
}
}
compileOptions {
targetCompatibility 1.7
sourceCompatibility 1.7
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
lintOptions {
checkReleaseBuilds false
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//noinspection GradleCompatible
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile project(path: ':loginregisterview')
}
Y mi módulo gradle:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
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:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'
testCompile 'junit:junit:4.12'
compile project(path: ':parser')
}
Mi segundo modulo:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
realm {
syncEnabled = true
}
useLibrary 'org.apache.http.legacy'
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile 'junit:junit:4.12'
// compile 'com.android.support:appcompat-v7:23.1.0'
// compile 'com.fasterxml.jackson.core:jackson-core:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
compile 'com.google.code.gson:gson:2.6.2'
}
____________hallazgo_________
Cuando no importé el segundo módulo (analizador), la aplicación no se bloqueó en dex, pero cuando el módulo no se importó, la aplicación no funcionó. : D: D
android
dex
android-studio-3.0
Parad0X
fuente
fuente
Respuestas:
Tuve el mismo problema cuando actualizo de
com.google.android.gms:play-services:11.2.2
acom.google.android.gms:play-services:11.4.0
. Esto lo resolvió para mí:fuente
multiDexEnabled true
solo no lo hizoIntenté todo lo anterior y ninguno de ellos ayuda. Finalmente, encuentro este trabajo para mí:
app / build.gradle:
fuente
¡Presta atención a las advertencias!
A veces solo necesita eliminar las advertencias y el error desaparecerá automáticamente. Ver abajo caso especial:
Tenía estas dos dependencias en mi
build.gradle
archivo de nivel de módulo :y Studio había advertido ( además del problema de fusión de dex ):
Así que determiné explícitamente la versión de
com.android.support:support-v4
(vea aquí para más detalles) y ambos problemas (la advertencia y el relacionado con la fusión de dex) se resolvieron :Vea los comentarios a continuación para otras situaciones similares.
fuente
support:design:26.1.0
, y aún no tenía esa dependencia. La versión de mis otras bibliotecas de soporte fue 27.1.0. Después de agregarsupport:design
dependencia con la27.1.0
versión, mi problema se resolvió.En mi caso, desafortunadamente, ni las soluciones de Michel ni de Suragch funcionaron para mí.
Así que resolví este problema haciendo lo siguiente:
En gradle: 3.0, la configuración de compilación ahora está en desuso y debe reemplazarse por implementación o api . Para obtener más información, puede leer aquí Puede leer los documentos oficiales en Gradle Build Tool
es mejor usar implementación o api en lugar de compilar
simplemente reemplace compilar con implementación , debugCompile con debugImplementation , testCompile con testImplementation y androidtestcompile con androidTestImplementation
Por ejemplo: en lugar de esto
usar así
Después de esto
Espero que ayude!
fuente
.gradle
y no./gradle
Eliminar el
.gradle
directorio.Ejecute su aplicación nuevamente.
Notas
.gradle
directorio está en la carpeta raíz de su proyecto. (Es posible que primero tenga que mostrar los archivos ocultos).fuente
Eliminar
.gradle
como lo sugirió Suragch no fue suficiente para mí. Además, tuve que realizar aBuild > Clean Project
.Tenga en cuenta que, para ver
.gradle
, debe cambiar a la vista "Proyecto" en el navegador en la parte superior izquierda:fuente
Intenté con cualquier otra solución, pero nadie trabajó para mí. Al final, lo resolví usando la misma versión de dependencia editando
build.gradle
. Creo que este problema se produce al agregar una biblioteca a gradle que utiliza diferentes versiones de soporte o bibliotecas de google.Agregue el siguiente código a su archivo de construcción gradle. Luego
clean
yrebuild
proyecto.fuente
si (1. Intenta limpiar y reconstruir el trabajo) entonces bueno
si no (2. Intente eliminar el trabajo de gradle) entonces bueno
else-> 3. Intente agregar en grade.properties
else-> 4. Agregue
multiDexEnabled
true a su build.gradley agregue la dependencia
Puede que el primero funcione para usted y así sucesivamente, pero realmente depende de la naturaleza de su problema para mí, por ejemplo
Recibí el error una vez que agregué esta biblioteca
y luego descubrí que tengo que verificar eso y tengo que agregar la misma versión de las bibliotecas de soporte. Entonces tengo que probar otra versión
Y soluciona el problema. Así que presta atención a eso.
fuente
En mi caso, el problema se debió a la biblioteca de la sala:
Cambiándolo a:
trabajó.
fuente
Solo para agregar a las soluciones anteriores:
Asegúrese de no tener dependencias duplicadas que apunten a diferentes versiones de ellas, en varios lugares (o incluso en el mismo archivo).
fuente
Hola, tengo el mismo problema, probé casi todo. Entonces, finalmente resolví después de una lucha de 6 horas depurando todo línea por línea.
Google-services 3.0 no es compatible con firebase con Studio 3.0 con playServiceVersion: 11.6.0 o menos.
Solución:
He cambiado los servicios de google a
Y es compatible con los servicios de Firebase.
Esperemos que alguien ahorre su tiempo.
fuente
Habilitar
defaultConfig {multiDexEnabled true}
Si el paso 1 no funciona, entonces
Vaya a la estructura del proyecto y descubra la biblioteca externa que está utilizando una versión diferente. Haga doble clic en él y elimine su archivo jar. Cierre el proyecto y vuelva a abrir Android Studio reconstruirá el proyecto. El problema debería desaparecer.
fuente
Una de las posibilidades es: la presencia de la misma biblioteca pero con diferentes versiones en las dependencias .
Tuve este problema con las siguientes líneas en el archivo gradle:
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.8.2'
La biblioteca gson estaba en mi directorio libs pero con una versión anterior. Eliminé el
gson-2.3.1.jar
del directorio libs y todo volvió a la normalidad.fuente
compile fileTree(include: ['*.jar'], dir: 'libs')
arreglado para mí también .. gracias (y)Si apareció este error después de incluir el soporte de kotlin, y ninguna de las otras soluciones funciona, intente cambiar la dependencia de kotlin de los módulos de la aplicación
build.gradle
a:Esto funciona para mí en Android Studio 3.0 Beta 6. Consulte esta respuesta para obtener más explicaciones.
fuente
Con la versión estable de Android Studio 3.0 Los siguientes pasos me funcionaron:
fuente
[NO SE PUEDE MEZCLAR DEX SOLUCIONADO] Después de horas de desbordamiento de la pila, resolví el "ERROR DE NO SE PUEDE MEZCLAR"
Causa: Android ha actualizado sus bibliotecas de soporte a v27.1.0, por lo que debe cambiar todas las líneas de soporte de Android en su archivo gradle a 27.1.0 de 26.1.0
Asegúrese de que la sección de repositorios incluya una sección de Maven con el punto final " https://maven.google.com ". Por ejemplo:
todos los proyectos {repositorios {jcenter () maven {url " https://maven.google.com "}}}
Causa: - Android no puede actualizar las bibliotecas de soporte en el administrador de SDK y ahora usa maven.google.com para actualizar, por lo que debe incluir esto para usar las bibliotecas de soporte 27.1.0
Después de cambiar la versión: 1. Proyecto limpio 2. Proyecto de reconstrucción
fuente
agregue comandos a continuación:
fuente
Instalación de los servicios de Google Play (última versión) + incluyendo
en build.gradle me resolvió el problema, ¡asegúrese de limpiar y reconstruir el proyecto!
fuente
En mi caso fue gson-2.8.1.jar que he agregado a la carpeta libs del proyecto. Pero la referencia ya estaba allí por SDK. Por lo tanto, no era necesario agregar gson-2.8.1.jar a la carpeta libs.
Cuando lo saqué, el proyecto gson-2.8.1.jar se compila sin este error errado.
Intente revisar la carpeta y las dependencias de libs .
fuente
Estoy de acuerdo con Chris-Jr. Si está utilizando Firebase para incrustar sus anuncios de AdMob (o incluso si no lo está), play-services-analytics incluye play-services-ads aunque no lo agregue como una dependencia. Obviamente, Google ha cometido un error en su implementación 11.4.0, ya que el análisis incluye la versión 10.0.1 de los anuncios, no la 11.4.0 (el mouse sobre la pista en el gradle lo muestra).
Agregué manualmente la compilación 'com.google.android.gms: play-services-ads: 11.4.0' en la parte superior que funcionó, pero solo después de deshabilitar Instant Run: http://stackoverflow.com/a/35169716/530047
Por lo tanto, puede retroceder a 10.0.1 o agregar los anuncios y desactivar la ejecución instantánea. Eso es lo que encontré si ayuda.
fuente
Encontré el mismo problema y encontré la verdadera razón de mi caso. Anteriormente, también probé todas las respuestas anteriores nuevamente, pero no resolvió el problema. Tengo dos módulos en mi proyecto de aplicación de desgaste, y el build.gradle de la siguiente manera:
desgaste del módulo build.gradle:
módulo común build.gradle:
Antes de actualizar a gradle 3.x, 'implementación' son todas 'compiladas'.
Ejecuto gradlew con la opción --stacktrace para obtener el seguimiento de la pila, puede hacer clic en esto en la ventana de la consola de gradle cuando surja este problema. Y descubrí que la dependencia del paquete jar repite:
Class SportSummary en el paquete farmer-motion-1.0.jar, después de leer la guía oficial de migración , cambié mi build.gradle a lo siguiente:
desgaste del módulo build.gradle:
módulo común 的 build.gradle:
Ahora el módulo de desgaste tendrá la dependencia de la exportación de granjero-motion-1.0.jar por módulo común. Si no hay dependencia del paquete jar durante el tiempo de ejecución , la dependencia ' implementación ' del paquete jar también se puede cambiar a 'compileOnly' .
fuente
También tuve el problema.
Pude resolver cambiando
compileSdkVersion
ytargetSdkVersion
a la última versión.fuente
Para nuestro proyecto, agregamos accidentalmente el mismo jar dos veces con un nombre diferente. Eliminar uno de ellos resolvió el problema.
fuente
libs
carpeta, tenía dos archivos jar, uno de los cuales es solo una copia de seguridad del otro pero con un nombre de archivo diferente.Puede que este no sea su problema, pero recibí este error cuando accidentalmente incluí dos bibliotecas idénticas (pero con nombres diferentes) en la sección de dependencias {} del proyecto.
fuente
Para mí, estaba actualizando la mensajería firebase en app \ build.gradle:
a
fuente
Una de las posibles causas raíz: dependencias transitorias duplicadas que no fueron manejadas adecuadamente por la importación de proyectos de múltiples módulos de Android Studio. Revise su lista y elimínelos. Para mí, la solución fue literalmente esto:
fuente
Descubro la razón de este problema para mi proyecto. Me agregaron una dependencia dos veces en build.gradle . Una vez agregando dependencia y otra vez agregando dependencia jar:
compile 'org.achartengine: achartengine: 1.2.0'
...
archivos de implementación ('../ achartengine-1.2.0.jar')
Después de eliminar el problema de la primera línea resuelto.
fuente
En caso de que las principales respuestas no le hayan funcionado, su problema puede ser que tenga varias dependencias que dependan de la misma biblioteca.
Aquí hay algunos consejos de depuración. En este código de muestra,
com.google.code.findbugs:jsr305:3.0.0
es la biblioteca infractora.¡Siempre limpie y reconstruya cada vez que modifique para verificar su solución!
Construya con la
--stacktrace
bandera encendida para obtener más detalles. Se quejará de una clase, Google esa clase para encontrar la biblioteca. Así es como puedes configurar Android Studio para que siempre se ejecute gradle con la--stacktrace
bandera .Eche un vistazo a Gradle Console en Android Studio
View > Tool Windows > Gradle Console
después de una compilaciónVerifique las dependencias repetidas ejecutando
./gradlew -q app:dependencies
. Puede volver a ejecutar esto cada vez que modifique su build.gradle.En build.gradle,
En build.gradle,
En build.gradle,
Si algunas de sus dependencias están en archivos jar, abra los archivos jar y vea si hay algún nombre de clase en conflicto. Si lo son, probablemente tendrá que reconstruir los frascos con nuevos nombres de clase o buscar sombreado .
Un poco más de lectura de fondo:
fuente
fuente
En mi caso, una biblioteca causa este problema, la biblioteca se agregó correctamente al proyecto pero cuando ejecuto mi aplicación me muestra este error. Entonces, si esto le sucede a usted también, puede ir a github y verificar problemas o plantear un nuevo problema. Si no encuentra ninguna solución con respecto a la biblioteca, le sugiero que la reemplace.
fuente