Android Studio erhielt einen Build-Fehler während der Build-Ausführung mit den folgenden Ergebnissen:
Fehler: Ausführung für Task ': app: transformDexArchiveWithExternalLibsDexMergerForDebug' fehlgeschlagen. java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Dex kann nicht zusammengeführt werden "
Meine App: build.gradle Datei:
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'
irgendwelche Lösungen
Edit: Ich habe mit Probe durch Firebase Github Site gemacht und gelöst
android
android-studio-3.0
build-error
Anguraj
quelle
quelle
Antworten:
Führen Sie für ein Cordova-basiertes Projekt
cordova clean android
vor dem erneuten Erstellen erneut aus, wie von @mkimmet vorgeschlagen.quelle
Dieser Fehler tritt auf, wenn Sie eine externe Bibliothek hinzufügen, die möglicherweise nicht mit Ihrer kompatibel ist
compileSdkVersion
.Seien Sie vorsichtig, wenn Sie eine hinzufügen
external library
.Ich habe 2 Tage mit diesem Problem verbracht und es wurde schließlich nach diesen Schritten gelöst.
Stellen Sie sicher , dass alle Ihre Support - Bibliotheken sind die gleichen wie
compileSdkVersion
Ihrbuild.gradle(Module:app)
in meinem Fall ist es26
.Geben Sie in Ihrer Kategorie defaultConfig multiDexEnabled true ein . Dies ist der wichtige Teil.
Gehen Sie zu Datei | Einstellungen | Erstellen, Ausführen, Bereitstellen | Instant Run und versuchen Sie, Instant Run für Hot Swap zu aktivieren / deaktivieren ... und klicken Sie auf OK
Sync
Dein Projekt.Zuletzt gehen Sie zu Build | Klicken Sie auf Projekt neu erstellen .
Hinweis: Beim erneuten Erstellen des Projekts wird das Projekt zuerst bereinigt und anschließend erstellt.
quelle
Versuchen Sie dies in Gradle hinzuzufügen
android { defaultConfig { multiDexEnabled true } }
quelle
Auflösung:
Siehe diesen Link : Da es je nach minSdkVersion verschiedene Optionen zum Ausschalten der Warnung gibt, wird sie unter 20 eingestellt :
android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.3' }
Wenn Ihr build.gradle-Set eine minSdkVersion größer als 20 enthält, beenden Sie die Warnung wie folgt:
android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 26 multiDexEnabled true } ... }
Aktualisieren Sie die Abhängigkeiten wie folgt:
dependencies { implementation 'com.android.support:multidex:1.0.3' }
Wieder ist der einzige Unterschied die Schlüsselwörter in Abhängigkeiten:
minSdkVersion unter 20: Kompilierung verwenden
minSdkVersion über 20: Implementierung verwenden
quelle
Versuchen Sie einfach ein "Build -> Clean Project". Das hat das Problem für mich gelöst.
quelle
Für mich hinzufügen
multiDexEnabled true
und
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' }
Build.gradle- Datei in der App-Ebene löste das Problem
quelle
Gehen Sie zu Ihrer
build.gradle
Datei auf Modulebene und fügen Sie dem Code die folgenden Zeilen hinzudefaultConfig { ... minSdkVersion 15 targetSdkVersion 28 multiDexEnabled true } ... } dependencies { implementation 'com.android.support:multidex:1.0.3' }
Das löste das Problem leicht. Überprüfen Sie diese Dokumentation
quelle
Verwenden Sie multiDexEnabled true wie folgt.
{ minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
und
implementation 'com.android.support:multidex:1.0.3'
Diese Lösung hat bei mir funktioniert.
quelle
Ich habe viele Lösungen wie oben erwähnt ausprobiert, einschließlich multiDexEnabled true, aber nichts davon hat bei mir funktioniert.
Hier ist die Lösung, die für mich funktioniert hat - kopieren Sie diesen Code in die Datei 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}" } } }
Stellen Sie sicher, dass Sie gradlew clean ausführen, bevor Sie den Code ausführen
quelle
Das gleiche passierte mir, als ich herausfand, dass ich gerade auf AS 3.0.1 aktualisierte und nachdem ich das Update durchgeführt, die App bereinigt und neu erstellt hatte, wurde alles repariert.
quelle
Für mich hat dieser Fehler eine Zeile in den Gradle-Abhängigkeiten meiner App geändert.
daraus :
compile('com.google.android.gms:play-services-gcm:+') { force = true }
Dazu :
compile('com.google.android.gms:play-services-gcm:11.8.0') { force = true }
quelle
Stellen Sie außerdem sicher, dass Ihre App MultiDexApplication untergeordnet ist
import android.support.multidex.MultiDexApplication class App : MultiDexApplication()
Wenn Sie die Anwendungsklasse nicht unterklassifizieren, fügen Sie sie zu AndroidManifest.xml hinzu
<application android:name="android.support.multidex.MultiDexApplication"
quelle
Befinden Sie sich zwischen SDK- oder Plattform-Updates? Wenn ja, füllen Sie diese vollständig aus und versuchen Sie dann fortzufahren. Normalerweise aktualisiere ich die einzelnen Pakete, die aktualisiert werden müssen, um das gesamte Update durchzuführen, das manchmal bis zu 2,5 GB betragen kann. Dieses vollständige Update schlägt manchmal fehl. Ich hatte eine Reihe von SDK-Updates, nachdem ich auf Android Studio 3.0 aktualisiert hatte, und bekam den obigen Fehler, da nicht alle Pakete aktualisiert wurden. Nachdem ich alle Pakete aktualisiert hatte, war der obige Fehler behoben.
quelle
In meinem Fall wurde das Problem behoben, indem die Version der Firebase-Bibliothek von 2.6.0 auf 2.4.2 geändert wurde
quelle
Für mich war das Problem die Verwendung von Java 1.8 in einem Modul, aber nicht im App-Modul. Ich habe dies zum App Build Gradle hinzugefügt und gearbeitet:
android{ compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
quelle
Gleiches Problem. Ich habe multidex aktiviert: defaultConfig {applicationId "xxx.xxx.xxxx" minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true
Ich habe den Cache geleert, Gradle Clean ausgeführt, neu erstellt, erstellt, versucht, sicherzustellen, dass keine Konflikte in importierten Bibliotheken auftreten (alle transitiven Abhängigkeiten wurden entfernt), und alle Aktualisierungen vorgenommen. Immer noch:
Es stellte sich heraus, dass der Build nicht gefallen hat: Implementierung 'org.slf4j: slf4j-android: 1.7.21'
quelle
Wenn die Version von Android Studio 3.0.1, Gradle Version 4.1 und Android PluginVersion 3.0.0 ist, tritt dieses Problem auf. Dann stufe ich Gradle Version 3.3 herunter, Android Android ist Null, es gibt kein solches Problem.
quelle
Ich hatte dies, als die angeforderte SDK-Version nicht mit den Abhängigkeiten übereinstimmte. Sie können auf die markierte Linie klicken und dieses Problem beheben, indem Sie auf die rote Glühbirne klicken. Sie müssen die aktuelle Version nicht finden, lassen Sie sie einfach von der IDE für Sie herausfinden. Und fügen Sie Google Repo zur Maven-Konfiguration hinzu.
quelle
Ich habe den gleichen Fehler erhalten und in meinem Fall wurde der Fehler behoben, als ich einen Build-Fehler behoben habe, der mit einer anderen Build-Variante als der aktuell erstellten verbunden war.
Ich habe die Build-Variante erstellt, die ich mir ohne Fehler angesehen habe, aber der Versuch, sie zu debuggen, hat einen
app:transformDexArchiveWithExternalLibsDexMergerForDebug
Fehler verursacht . Nachdem ich zum Erstellen der anderen Build-Variante gewechselt war, habe ich meinen Fehler im Build-Prozess abgefangen und behoben. Dies schien meinapp:transformDexArchiveWithExternalLibsDexMergerForDebug
Problem für alle Build-Varianten zu lösen .Beachten Sie, dass dieser Fehler nicht innerhalb des referenzierten externen Moduls, sondern innerhalb eines bestimmten Quellensatzes einer Build-Variante lag, die auf ein externes Modul verwies. Hoffe, das ist hilfreich für jemanden, der vielleicht den gleichen Fall wie ich sieht!
quelle
Ich habe dieses Problem behoben, indem ich nur diese Jobs in meinem Code ausgeführt habe
Öffnen -> build.gradle Wert von ändern
compile 'com.google.code.gson:gson:2.6.1'
zu
compile 'com.google.code.gson:gson:2.8.2'
quelle
Um dieses Dex-Problem zu beseitigen, implementieren Sie einfach eine Abhängigkeit. Dieses Problem tritt auf, wenn wir mehrere verschiedene Dienste vom selben Server verwenden. Angenommen, wir verwenden Anzeigen und Firestore in einem Projekt und beide haben einen Repository-Maven. Daher müssen wir verschiedene Daten mit einem Repository aufrufen, für dessen Implementierung eine Dex-Abhängigkeit erforderlich ist. Das neue Update Abhängigkeit: -
implementation 'com.android.support:multidex:1.0.3'
Ich bin sicher, es wird Ihr Problem dauerhaft lösen
quelle
android {compileSdkVersion 28 defaultConfig {
minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
quelle
Der einfachste Weg, um Fehler zu vermeiden, ist:
- Ändern Sie die Bibliothek combilesdkversion genauso wie Ihre App compilesdkversion
- Ändern Sie die supportLibrary-Version der Bibliothek wie Ihre build.gradle (App).
quelle
Das funktioniert bei mir. sauber vorbereiten und laufen lassen.
cordova clean android; ionic cordova prepare andriod; ionic cordova run andriod;
ich hoffe es hilft.
quelle
Ich habe auch den ähnlichen Fehler bekommen.
Hauptursache für dieses Problem ist, dass multiDex nicht aktiviert ist. Also in dem Projekt / android / app / build.gradle , ermöglichen die multiDex
Weitere Informationen finden Sie in der Dokumentation: https://developer.android.com/studio/build/multidex#mdex-gradle
quelle