J'ai Android Studio Beta. J'ai créé un nouveau projet avec compiler mes anciens modules mais quand j'ai essayé de lancer l'application, elle ne s'est pas lancée avec le message:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException: impossible de fusionner dex
Mais je ne sais pas comment résoudre cette erreur. J'ai googlé cela pendant des heures mais sans succès.
Mon projet 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
}
Mon gradle d'application:
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')
}
Et mon module 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')
}
Mon deuxième module:
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'
}
____________découverte_________
Lorsque je n'ai pas importé le deuxième module (analyseur), l'application n'a pas planté sur dex mais lorsque le module n'a pas été importé, l'application n'a pas fonctionné. : D: D
android
dex
android-studio-3.0
Parad0X
la source
la source
Réponses:
J'ai eu le même problème lors de la mise à jour de
com.google.android.gms:play-services:11.2.2
verscom.google.android.gms:play-services:11.4.0
. Cela m'a résolu:la source
multiDexEnabled true
seul ne l'a pas faitJ'ai essayé tout ce qui précède et aucun d'eux n'aide. enfin, je trouve ce travail pour moi:
app / build.gradle:
la source
Faites attention aux avertissements!
Parfois, il vous suffit d'éliminer les avertissements et l' erreur disparaîtra automatiquement. Voir ci-dessous cas particulier:
J'avais ces deux dépendances dans mon
build.gradle
fichier de niveau module :et Studio avait averti ( en plus du problème de fusion dex ):
J'ai donc explicitement déterminé la version de
com.android.support:support-v4
(voir ici pour plus de détails) et les deux problèmes (l'avertissement et celui lié à la fusion dex) ont été résolus :Voir les commentaires ci-dessous pour d'autres situations similaires.
la source
support:design:26.1.0
, et je n'avais pas encore cette dépendance. Mes autres bibliothèques de support sont la version 27.1.0. Après avoir ajouté unesupport:design
dépendance avec la27.1.0
version, mon problème a été résolu.Dans mon cas, malheureusement, ni les solutions de Michel ni celles de Suragch n'ont fonctionné pour moi.
J'ai donc résolu ce problème en procédant comme suit:
Dans gradle: 3.0, la configuration de compilation est désormais obsolète et devrait être remplacée par l' implémentation ou l' api . Pour plus d'informations, vous pouvez lire ici Vous pouvez lire les documents officiels sur Gradle Build Tool
il vaut mieux utiliser l' implémentation ou l' api plutôt compiler
remplacez simplement compile par implémentation , debugCompile par debugImplementation , testCompile par testImplementation et androidtestcompile par androidTestImplementation
Par exemple: au lieu de cela
utiliser comme ça
Après ça
J'espère que cela vous aidera!
la source
.gradle
et non./gradle
Supprimez le
.gradle
répertoire.Exécutez à nouveau votre application.
Remarques
.gradle
répertoire se trouve dans le dossier racine de votre projet. (Vous devrez peut-être d'abord afficher les fichiers cachés.)la source
Supprimer
.gradle
comme suggéré par Suragch ne me suffisait pas. De plus, j'ai dû effectuer unBuild > Clean Project
.Notez que pour voir
.gradle
, vous devez basculer vers la vue "Projet" dans le navigateur en haut à gauche:la source
J'ai essayé toutes les autres solutions, mais personne ne travaillait pour moi. À la fin, je l'ai résolu en utilisant la même version de dépendance en éditant
build.gradle
. Je pense que ce problème se produit lors de l'ajout d'une bibliothèque dans Gradle qui utilise une version de dépendance différente du support ou des bibliothèques Google.Ajoutez le code suivant à votre fichier gradle de génération. Ensuite
clean
etrebuild
projetez.la source
si (1. Essayez de nettoyer et de reconstruire le travail) alors bon
sinon si (2. Essayez de supprimer le travail gradle) alors bon
else-> 3. Essayez d'ajouter dans grade.properties
else-> 4. Ajoutez
multiDexEnabled
true à votre build.gradleet ajoutez la dépendance
Cela peut être le premier qui fonctionne pour vous et ainsi de suite, mais cela dépend vraiment de la nature de votre problème pour moi par exemple
J'ai eu l'erreur une fois que j'ai ajouté cette bibliothèque
et plus tard, j'ai découvert que je dois vérifier cela et je dois ajouter la même version des bibliothèques de support. Je dois donc essayer une autre version
et cela résout le problème. Faites donc attention à cela.
la source
Dans mon cas, le problème était dû à la bibliothèque de la salle:
Le changer en:
travaillé.
la source
Juste pour ajouter aux solutions ci-dessus:
Assurez-vous que vous n'avez pas de dépendances en double pointant vers différentes versions d'entre elles, à plusieurs endroits (ou même dans le même fichier).
la source
Salut, j'ai le même problème essayé presque tout. Donc, finalement, j'ai résolu après 6 heures de lutte en déboguant tout ligne par ligne.
Google-services 3.0 Ne prend pas en charge Firebase avec Studio 3.0 avec playServiceVersion: 11.6.0 ou moins.
Solution :
J'ai changé les services google en
Et il prend en charge les services Firebase.
J'espère que quelqu'un économisera son temps.
la source
Activer
defaultConfig {multiDexEnabled true}
Si l'étape 1 ne fonctionne pas, alors
Accédez à la structure du projet et découvrez la bibliothèque externe qui utilise une version différente. Double-cliquez dessus et supprimez son fichier jar. Fermez le projet et ouvrez à nouveau le studio Android reconstruira le projet. Le problème devrait avoir disparu.
la source
Une des possibilités est: la présence de la même bibliothèque mais avec des versions différentes dans les dépendances .
J'ai eu ce problème avec les lignes suivantes dans le fichier Gradle:
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.8.2'
La bibliothèque gson était dans mon répertoire libs mais avec une version précédente. J'ai supprimé le
gson-2.3.1.jar
du répertoire libs et tout est revenu à la normale.la source
compile fileTree(include: ['*.jar'], dir: 'libs')
corrigée pour moi aussi .. merci (y)Si cette erreur est apparue pour vous après avoir inclus la prise en charge de kotlin et qu'aucune des autres solutions ne fonctionne, essayez de changer la dépendance kotlin des modules d'application
build.gradle
en:Cela fonctionne pour moi sur Android Studio 3.0 Beta 6. Voir cette réponse pour plus d'explications.
la source
Avec la version stable d'Android Studio 3.0 Les étapes ci-dessous ont fonctionné pour moi:
la source
[IMPOSSIBLE DE FUSIONNER DEX RÉSOLU] Après des heures de débordement de pile, j'ai résolu «L'ERREUR IMPOSSIBLE DE FUSIONNER DEX»
Cause - Android a mis à jour ses bibliothèques de prise en charge en v27.1.0, vous devez donc changer toutes les lignes de support Android de votre fichier gradle de 27.1.0 à 26.1.0
Assurez-vous que la section des référentiels comprend une section maven avec le point de terminaison " https://maven.google.com ". Par exemple:
allprojects {référentiels {jcenter () maven {url " https://maven.google.com "}}}
Cause: - Android ne peut pas mettre à jour les bibliothèques de support dans le gestionnaire de SDK et maintenant il utilise maven.google.com pour la mise à jour, vous devez donc l'inclure pour utiliser les bibliothèques de support 27.1.0
Après le changement de version: 1. Nettoyer le projet 2. Reconstruire le projet
la source
ajoutez des commandes ci-dessous:
la source
Installation des services Google play (dernière version) + y compris
dans build.gradle a résolu le problème pour moi, assurez-vous de nettoyer et de reconstruire le projet!
la source
Dans mon cas, c'était gson-2.8.1.jar que j'ai ajouté au dossier libs du projet. Mais la référence était déjà là par SDK. Il n'était donc pas nécessaire d' ajouter gson-2.8.1.jar au dossier libs.
Quand je l' ai retiré, le projet gson-2.8.1.jar se compile sans cette erreur bizarre.
Essayez donc de réviser le dossier libs et les dépendances .
la source
Je suis d'accord avec Chris-Jr. Si vous utilisez Firebase pour incorporer vos annonces AdMob (ou même si vous ne l'êtes pas), les play-services-analytics incluent les play-services-ads même si vous n'ajoutez pas cela en tant que dépendance. Google a évidemment fait une erreur dans son déploiement 11.4.0, car l'analyse inclut la version 10.0.1 des publicités, pas 11.4.0 (l'indication de la souris dans le gradle le montre).
J'ai ajouté manuellement la compilation «com.google.android.gms: play-services-ads: 11.4.0» en haut, ce qui a fonctionné, mais seulement après avoir désactivé Instant Run: http://stackoverflow.com/a/35169716/530047
Il est donc préférable de régresser vers 10.0.1 ou d'ajouter les annonces et de désactiver Instant Run. C'est ce que j'ai trouvé si ça aide.
la source
J'ai rencontré le même problème et trouvé la vraie raison de mon cas. Auparavant, j'ai également essayé à nouveau toutes les réponses précédentes, mais cela n'a pas résolu le problème. J'ai deux modules dans mon projet d'application d'usure et le build.gradle comme suit:
wear.gradle du module wear:
build.gradle du module commun:
Avant la mise à niveau vers gradle 3.x, la «mise en œuvre» consiste à «compiler».
J'exécute gradlew avec l'option --stacktrace pour obtenir la trace de la pile, vous pouvez simplement cliquer dessus dans la fenêtre de la console gradle lorsque ce problème se pose. Et constaté que la dépendance au package jar se répétait:
Classe SportSummary dans le package farmer-motion-1.0.jar, après avoir lu le guide de migration officiel , j'ai changé mon build.gradle comme suit:
wear.gradle du module wear:
module commun 的 build.gradle:
Maintenant, le module d'usure aura la dépendance de l'exportation farmer-motion-1.0.jar par module commun. S'il n'y a pas de dépendance sur le package jar pendant l'exécution , la dépendance «d' implémentation » du package jar peut également être remplacée par «compileOnly» .
la source
J'ai aussi eu le problème.
J'ai pu résoudre en changeant
compileSdkVersion
ettargetSdkVersion
en dernière version.la source
Pour notre projet, nous avons accidentellement ajouté le même pot deux fois avec un nom différent. La suppression de l'un d'eux a résolu le problème.
la source
libs
dossier, j'avais deux fichiers jar, dont l'un est juste une sauvegarde de l'autre mais avec un nom de fichier différent.Ce n'est peut-être pas votre problème, mais j'ai eu cette erreur lorsque j'ai accidentellement inclus deux bibliothèques identiques (mais différemment nommées) dans la section des dépendances {} du projet.
la source
Pour moi, il mettait à jour la messagerie Firebase dans app \ build.gradle:
à
la source
L'une des causes profondes possibles: les dépendances transitoires en double qui n'ont pas été correctement gérées par l'importation Android Studio de projets multi-modules. Vérifiez votre liste et supprimez-les. Pour moi, la solution était littéralement la suivante:
la source
Je découvre la raison de ce problème pour mon projet. J'ai été ajouté une dépendance deux fois dans build.gradle . Une fois en ajoutant une dépendance et une autre fois en ajoutant une dépendance jar:
compiler 'org.achartengine: achartengine: 1.2.0'
...
fichiers d'implémentation ('../ achartengine-1.2.0.jar')
après avoir supprimé le problème de première ligne résolu.
la source
Dans le cas où les meilleures réponses n'ont pas fonctionné pour vous, votre problème peut être que vous avez plusieurs dépendances qui dépendent de la même bibliothèque.
Voici quelques conseils de débogage. Dans cet exemple de code, se
com.google.code.findbugs:jsr305:3.0.0
trouve la bibliothèque incriminée.Nettoyez et reconstruisez toujours à chaque modification pour vérifier votre solution!
Construisez avec le
--stacktrace
drapeau dessus pour plus de détails. Il va se plaindre d'une classe, Google cette classe pour trouver la bibliothèque. Voici comment vous pouvez configurer Android studio pour toujours exécuter gradle avec le--stacktrace
drapeau .Jetez un coup d'œil à la console Gradle dans Android Studio
View > Tool Windows > Gradle Console
après une constructionVérifiez les dépendances répétées en exécutant
./gradlew -q app:dependencies
. Vous pouvez réexécuter cela chaque fois que vous modifiez votre build.gradle.Dans build.gradle,
Dans build.gradle,
Dans build.gradle,
Si certaines de vos dépendances sont dans des fichiers jar, ouvrez les fichiers jar et voyez s'il y a des noms de classe en conflit. S'ils le sont, vous devrez probablement reconstruire les pots avec de nouveaux noms de classe ou examiner l' ombrage .
Un peu plus de lecture de fond:
la source
la source
Dans mon cas, une bibliothèque pose ce problème, la bibliothèque a été ajoutée avec succès au projet, mais lorsque j'exécute mon application, elle me montre cette erreur. Donc, si cela vous arrive aussi, vous pouvez aller sur github et vérifier les problèmes ou soulever un nouveau problème. Si vous ne trouvez aucune solution concernant la bibliothèque, je vous suggère de la remplacer.
la source