Ich habe Android Studio Beta. Ich habe ein neues Projekt erstellt, in dem meine alten Module kompiliert wurden, aber beim Versuch, die App zu starten, wurde sie nicht mit der folgenden Meldung gestartet:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.Android.builder.dexing.DexArchiveMergerException: Dex kann nicht zusammengeführt werden
Ich weiß nicht, wie ich diesen Fehler beheben kann. Ich habe dies stundenlang gegoogelt, aber ohne Erfolg.
Mein Projektabschluss:
// 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
}
Meine App 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')
}
Und mein Modulgrad:
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')
}
Mein zweites Modul:
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'
}
____________finden_________
Wenn ich das zweite Modul (Parser) nicht importierte, stürzte die App auf Dex nicht ab, aber wenn das Modul nicht importiert wurde, funktionierte die App nicht. : D: D
Ich hatte das gleiche Problem, wenn ich von com.google.Android.gms:play-services:11.2.2
auf com.google.Android.gms:play-services:11.4.0
aktualisiere. Das hat es für mich gelöst:
Ich habe alles oben ausprobiert und keiner von ihnen hilft, endlich finde ich diese Arbeit für mich:
app/build.gradle:
Android {
defaultConfig {
multiDexEnabled true
}
}
Manchmal müssen Sie nur Warnungen entfernen und der Fehler wird automatisch ausgeblendet. Siehe unten Sonderfall:
Ich hatte diese beiden Abhängigkeiten in meiner build.gradle
-Datei auf Modulebene:
implementation 'com.Android.support:appcompat-v7:27.0.2'
implementation 'com.Android.support:recyclerview-v7:27.0.2'
und Studio warnte (zusätzlich zum Dex-Problem):
Alle
com.Android.support
-Bibliotheken müssen exakt dieselbe Versionsspezifikation verwenden (das Mischen von Versionen kann zu Laufzeitabstürzen führen). Gefundene Versionen27.0.2
,21.0.3
. Beispiele sindcom.Android.support:animated-vector-drawable:27.0.2
undcom.Android.support:support-v4:21.0.3
Also habe ich explizit die Version von com.Android.support:support-v4
bestimmt (siehe hier für Details) und beide Probleme (die Warnung und das mit dem Zusammenführen von Dex verbundene) gelöst:
implementation 'com.Android.support:support-v4:27.0.2' // Added this line (according to above warning message)
implementation 'com.Android.support:appcompat-v7:27.0.2'
implementation 'com.Android.support:recyclerview-v7:27.0.2'
Siehe ähnliche Kommentare für weitere ähnliche Situationen.
In meinem Fall haben leider weder Michels noch Suragchs Lösungen für mich funktioniert.
Also habe ich dieses Problem gelöst, indem ich Folgendes getan habe:
In gradle: 3.0 ist die Konfiguration von compile nun veraltet und sollte durch Implementation oder api ersetzt werden. Für weitere Informationen können Sie lesen Sie hier Sie können die offiziellen Dokumente unter Gradle Build Tool lesen.
Die Kompilierungskonfiguration ist noch vorhanden, sollte aber nicht verwendet werden, da sie nicht die Gewähr dafür bietet, dass API und Implementierung Konfigurationen bieten.
es ist besser, Implementation oder api zu verwenden, eher compile.
ersetzen Sie einfach compile durch Implementation, debugCompile durch debugImplementation, testCompile durch testImplementation und androidtestcompile durch androidTestImplementation.
Zum Beispiel: Stattdessen
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'
verwenden Sie so
implementation 'com.Android.support:appcompat-v7:26.0.2'
implementation 'com.Android.support:support-v4:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'
Nachdem
Hoffe es wird helfen!
Löschen Sie das Verzeichnis .gradle
.
Führen Sie Ihre App erneut aus.
Anmerkungen
.gradle
befindet sich im Stammordner Ihres Projekts. (Möglicherweise müssen Sie zuerst versteckte Dateien anzeigen.) Ich habe jede andere Lösung ausprobiert, aber niemand hat für mich gearbeitet. Am Ende habe ich es gelöst, indem ich dieselbe Abhängigkeitsversion verwendet habe, indem ich build.gradle
editierte. Ich denke, dieses Problem tritt auf, wenn eine Bibliothek in Gradle hinzugefügt wird, die eine andere Abhängigkeitsversion der Unterstützung oder Google-Bibliotheken verwendet.
Fügen Sie der Build-Gradle-Datei den folgenden Code hinzu. Dann clean
und rebuild
Projekt.
ps: Das war eine alte Lösung für mich, also sollte man die aktualisierte Version von .__ verwenden. folgenden Bibliotheken.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.Android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
} else if (requested.group == "com.google.Android.gms") {
details.useVersion '11.8.0'
} else if (requested.group == "com.google.firebase") {
details.useVersion '11.8.0'
}
}
}
In meinem Fall lag das Problem an der Raumbibliothek:
compile 'Android.Arch.persistence.room:runtime:1.0.0-alpha1'
Ändern Sie es in:
compile 'Android.Arch.persistence.room:runtime:1.0.0'
hat funktioniert.
Hallo ich habe gleich alles probiert. Also entschied ich mich schließlich nach 6 Stunden langem Kampf, indem ich alles Zeile für Zeile debuggen musste.
classpath 'com.google.gms:google-services:3.0.0'
Google-services 3.0 Unterstützt keine Firebase mit Studio 3.0 mit playServiceVersion: 11.6.0 oder weniger.
implementation "com.google.firebase:firebase-messaging:$rootProject.ext.playServiceVersion"
implementation "com.google.firebase:firebase-core:$rootProject.ext.playServiceVersion"
implementation "com.firebase:firebase-jobdispatcher-with-gcm-dep:$rootProject.ext.jobdispatcherVersion"
Lösung:
Ich habegoogle-Dienstein geändert
classpath 'com.google.gms:google-services:3.1.1'
Und es unterstützt Firebase-Dienste.
Hoffentlich rettet jemand seine Zeit.
Einfach zu den obigen Lösungen hinzufügen:
Stellen Sie sicher, dass Sie keine doppelten Abhängigkeiten haben, die auf verschiedene Versionen (__..) An mehreren Stellen (oder sogar in derselben Datei) verweisen.
wenn (1. Versuch, Arbeit zu reinigen und wieder aufzubauen), dann gut
sonst wenn (2. Versuchen Sie, gradle Arbeit zu entfernen) dann gut
else-> 3. Versuchen Sie, grade.properties hinzuzufügen
Android.enableD8 = false
else-> 4. Fügen Sie multiDexEnabled
true zu Ihrem build.gradle hinzu
Android {
compileSdkVersion 26
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
...
}
}
und fügen Sie die Abhängigkeit hinzu
dependencies {
compile 'com.Android.support:multidex:1.0.1'}
Möglicherweise funktioniert das erste für Sie und so weiter, aber es hängt zum Beispiel wirklich von der Art Ihres Problems ab
Ich habe die Fehlermeldung erhalten, sobald ich diese Bibliothek hinzugefügt habe
implementation 'com.jjoe64:graphview:4.2.2'
und später entdeckte ich, dass ich das überprüfen muss, und ich muss dieselbe Version der Support-Bibliotheken hinzufügen. Also muss ich eine andere Version ausprobieren
compile 'com.jjoe64:graphview:4.2.1'
und es behebt das Problem. Also pass auf das auf.
Aktivieren
defaultConfig { multiDexEnabled true }
Wenn Schritt 1 dann nicht funktioniert
Gehen Sie zur Projektstruktur und finden Sie heraus, welche externe Bibliothek eine -Version verwendet. Doppelklicken Sie darauf und löschen Sie die JAR-Datei. Schließen Sie das Projekt und öffnen Sie es erneut. Android Studio baut das Projekt neu auf .. Das Problem sollte behoben sein.
Eine der Möglichkeiten ist: Vorhandensein derselben Bibliothek, jedoch mit unterschiedlichen Versionen in den Abhängigkeiten.
Ich hatte dieses Problem mit den folgenden Zeilen in der gradle-Datei:
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.8.2'
Die gson-Bibliothek befand sich in meinem libs-Verzeichnis, jedoch mit einer früheren Version. Ich habe den gson-2.3.1.jar
Aus dem libs-Verzeichnis gelöscht und alles ist wieder normal.
[UNVERBINDLICHE DURCHSETZUNG VON DEX DURCHGEFÜHRT] Nach Stunden des Stapels überläuft
Ursache - Android hat die Unterstützungsbibliotheken auf Version 27.1.0 aktualisiert. Daher müssen Sie alle Android-Unterstützungszeilen in Ihrer Gradle-Datei von 26.1.0 auf 27.1.0 ändern
Stellen Sie sicher, dass der Repository-Abschnitt einen Maven-Abschnitt mit dem Endpunkt " https://maven.google.com " enthält. Zum Beispiel:
alle Projekte { Repositorys { jcenter () Maven { URL " https://maven.google.com " } } }
Ursache: - Android kann die Unterstützungsbibliotheken im SDK-Manager nicht aktualisieren. Jetzt wird maven.google.com zum Aktualisieren verwendet. Sie müssen diese Option hinzufügen, um 27.1.0-Unterstützungsbibliotheken verwenden zu können
Nach Änderungsversion: 1. Reinigen Sie das Projekt 2. Projekt neu erstellen
Wenn dieser Fehler nach dem Einfügen der Kotlin-Unterstützung für Sie aufgetreten ist und keine der anderen Lösungen funktioniert, ändern Sie die Kotlin-Abhängigkeit von build.gradle
des App-Moduls in
implementation ("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version") {
exclude group: 'org.jetbrains', module: 'annotations'
}
Dies funktioniert für mich unter Android Studio 3.0 Beta 6. Siehe this answer für weitere Erklärung.
Installieren von Google Play-Diensten (neueste Version) + einschließlich
Android {
defaultConfig {
multiDexEnabled true
}
}
in build.gradle hat das Problem für mich gelöst, stellen Sie sicher, dass Sie das Projekt reinigen und neu erstellen!
füge unten Befehle hinzu:
Android {
...
dexOptions {
jumboMode true
javaMaxHeapSize "4g"
}
}
Mit Android Studio 3.0 stabiler Build Folgende Schritte funktionierten für mich:
Ich stimme mit Chris-Jr. Wenn Sie Firebase verwenden, um Ihre AdMob-Anzeigen einzubetten (oder auch wenn Sie es nicht sind), enthält die play-services-analytics die play-services-ads, auch wenn Sie dies nicht als Abhängigkeit hinzufügen. Google hat offensichtlich einen Fehler in seinem 11.4.0-Roll-out begangen, da in der Analyse Version 10.0.1 der Anzeigen und nicht 11.4.0 enthalten ist (der Mauszeiger-Hinweis in Gradle zeigt dies).
Ich habe compile 'com.google.Android.gms: play-services-ads: 11.4.0' am Anfang manuell hinzugefügt, was funktioniert hat, aber erst nachdem ich Instant Run deaktiviert hatte: http: // stackoverflow.com/a/35169716/530047
Also entweder auf 10.0.1 zurückgreifen oder die Anzeigen hinzufügen und Instant Run deaktivieren Das habe ich herausgefunden, wenn es irgendetwas hilft.
Ich hatte auch das Problem.
Ich konnte das Problem lösen, indem ich compileSdkVersion
und targetSdkVersion
auf die neueste Version umstellte.
Ich bin auf das gleiche Problem gestoßen und habe den eigentlichen Grund für meinen Fall gefunden. Vorher habe ich auch alle vorherigen Antworten erneut versucht, aber das Problem wurde nicht gelöst. Ich habe zwei Module in meinem Wear-App-Projekt das build.gradle wie folgt:
build.gradle des Verschleißmoduls:
implementation project(':common')
implementation files('libs/farmer-motion-1.0.jar')
build.gradle des allgemeinen Moduls:
implementation files('libs/farmer-motion-1.0.jar')
Vor dem Upgrade auf Gradle 3.x ist "Implementierung" alles "Kompilieren".
Ich führe gradlew mit der Option --stacktrace aus, um die Stapelablaufverfolgung zu erhalten. Sie können dies einfach im Gradle Console-Fenster anklicken, wenn dieses Problem auftritt. Und stellte fest, dass die Abhängigkeit zum jar-Paket wiederholt wurde:
Caused by: com.Android.dex.DexException: Multiple dex files define Lcom/farmer/motion/common/data/pojo/SportSummary$2;
Class SportSummary im farmer-motion-1.0.jar-Paket, nachdem ich den offiziellen Migrationsleitfaden gelesen hatte, änderte ich mein build.gradle folgendermaßen:
build.gradle des Verschleißmoduls:
implementation project(':common')
// delete dependency implementation files('libs/farmer-motion-1.0.jar')
allgemeines modul 的 build.gradle:
api files('libs/farmer-motion-1.0.jar') // change implementation to api
Das Verschleißmodul hat nun die Abhängigkeit des Farmer-motion-1.0.jar-Exports durch das gemeinsame Modul. Wenn während der Laufzeit keine Abhängigkeit vom JAR-Paket hat [], kann die 'Implementation' - Abhängigkeit des JAR-Pakets auch in 'compileOnly' geändert werden.
In meinem Fall war es gson-2.8.1.jar, den ich zum Ordner libs des Projekts hinzugefügt habe. Die Referenz war jedoch bereits von SDK vorhanden .. _. Daher war es nicht erforderlich, gson-2.8.1.jar zum libs-Ordner hinzuzufügen.
Wenn ich nimm es aus dem gson-2.8.1.jar heraus Projekt kompiliert, ohne diesen Fehler.
Versuchen Sie daher, libs Ordner und Abhängigkeiten zu überarbeiten.
Für unser Projekt haben wir aus Versehen zweimal dasselbe Glas mit einem anderen Namen hinzugefügt. Durch das Entfernen eines von ihnen wurde das Problem behoben.
Ich finde den Grund dieses Problems für mein Projekt heraus.Ich wurde zweimal in build.gradleeine Abhängigkeit hinzugefügt. Einmal durch Hinzufügen von Abhängigkeiten und noch einmal durch Hinzufügen von Jar-Abhängigkeiten:
kompiliere 'org.achartengine: achartengine: 1.2.0'
...
Implementierungsdateien ('../ achartengine-1.2.0.jar')
nach dem Entfernen der ersten Zeile Problem gelöst.
Falls die wichtigsten Antworten nicht für Sie geeignet waren, besteht Ihr Problem möglicherweise darin, dass Sie mehrere Abhängigkeiten haben, die von derselben Bibliothek abhängen.
Hier sind einige Tipps zum Debuggen. In diesem Beispielcode ist com.google.code.findbugs:jsr305:3.0.0
die fehlerhafte Bibliothek.
Reinigen Sie jedes Mal, wenn Sie Änderungen vornehmen, um Ihre Lösung zu überprüfen!
Erstellen Sie das Flag --stacktrace
, um weitere Informationen zu erhalten. Es wird sich über eine Klasse beschweren, Google die Klasse zu finden, um die Bibliothek zu finden. So können Sie Android Studio so einrichten, dass Gradle immer mit der --stacktrace
-Markierung ausgeführt wird.
Werfen Sie einen Blick auf die Gradle-Konsole in Android Studio View > Tool Windows > Gradle Console
nach einem Build
Überprüfen Sie auf wiederholte Abhängigkeiten, indem Sie ./gradlew -q app:dependencies
ausführen. Sie können dies jedes Mal erneut ausführen, wenn Sie Ihr build.gradle ändern.
In build.gradle
Android {
...
configurations.all {
resolutionStrategy {
// Force a particular version of the library
// across all dependencies that have that dependency
force 'com.google.code.findbugs:jsr305:3.0.0'
}
}
}
In build.gradle
dependencies {
...
implementation('com.google.auth:google-auth-library-oauth2-http:0.6.0') {
// Exclude the library for this particular import
exclude group: 'com.google.code.findbugs'
}
}
In build.gradle
Android {
...
configurations.all {
resolutionStrategy {
// Completely exclude the library. Works for transitive
// dependencies.
exclude group: 'com.google.code.findbugs'
}
}
}
Wenn sich einige Ihrer Abhängigkeiten in JAR-Dateien befinden, öffnen Sie die JAR-Dateien und prüfen Sie, ob in Konflikt stehende Klassennamen vorhanden sind. Wenn dies der Fall ist, müssen Sie die Gläser wahrscheinlich mit neuen Klassennamen neu erstellen oder in shading nachsehen.
Einige weitere Hintergrundlesungen:
Dies ist möglicherweise nicht Ihr Problem, aber ich habe diesen Fehler erhalten, als ich versehentlich zwei identische (aber anders benannte) Bibliotheken in den Dependencies {} - Abschnitt des Projekts aufgenommen habe.
In meinem Fall macht eine Bibliothek dieses Problem, die Bibliothek wurde erfolgreich zum Projekt hinzugefügt, aber wenn ich meine App starte, wird mir dieser Fehler angezeigt. Wenn dies auch bei Ihnen der Fall ist, können Sie zu github gehen und Probleme prüfen oder ein neues Problem aufwerfen. Wenn Sie bezüglich der Bibliothek keine Lösung finden, empfehle ich Ihnen, sie zu ersetzen.
Für mich wurde das Firebase-Messaging in app\build.gradle aktualisiert:
compile 'com.google.firebase:firebase-messaging:10.0.1'
zu
compile 'com.google.firebase:firebase-messaging:11.4.2'
Ich hatte das gleiche problem Ich habe gerade Instant Run
aktiviert (es war deaktiviert) und dann hat mein Projekt funktioniert. Sie finden es in
File->Settings-> Build,Execution,Deployment->Instant Run
Android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
}
...
}
dependencies {
compile 'com.Android.support:multidex:1.0.1'
}
Eine der möglichen Ursachen: Duplizieren Sie transiente Abhängigkeiten, die beim Import von Multimodulprojekten durch Android Studio nicht ordnungsgemäß behandelt wurden. Überprüfen Sie Ihre Liste und entfernen Sie sie. Für mich war das Update buchstäblich Folgendes:
--- a/project/module/build.gradle
+++ b/project/module/build.gradle
@@ -21,5 +21,4 @@ Android {
dependencies {
implementation project(':upstream-dependency-project')
implementation 'com.Android.support:support-v4:18.0.0'
- implementation files('libs/slf4j-Android-1.6.1-RC1.jar')
}
versuchen Sie es so, es funktioniert für mich.
In app/build.gradle:
dependencies {
....
compile project(':grow-notification')
/** Firebase Start **/
compile 'com.google.firebase:firebase-messaging:11.4.0'
compile 'com.firebase:firebase-jobdispatcher:0.6.0'
/** Firebase End **/
}
apply plugin: 'com.google.gms.google-services'
im Modul grow-notification/build.gradle:
dependencies {
....
/** Firebase Start **/
provided 'com.google.firebase:firebase-messaging:11.4.0'
provided 'com.firebase:firebase-jobdispatcher:0.6.0'
/** Firebase End **/
}
Stellen Sie sicher, dass alle Quellbibliotheken dieselbe Versionsnummer haben. In meinem Fall habe ich verschiedene Google API-Versionen verwendet. Ich habe 11.6.0 für alle Google-Bibliotheken verwendet, aber 10.4.0 für Google Place API. Nach dem Update von google place api auf 11.6.0 , wurde das Problem behoben.
Bitte beachten Sie, dass mein Multidex auch für das Projekt aktiviert ist.
Ich habe mehr als 3 Stunden damit verbracht, alle Antworten zu lesen und zu testen ... Endlich war das Problem die Bibliothek "joda time",
Lesen von diese Antwort Ich habe das Problem gefunden, die Gradle Console mit vollem Stack-Trace ausführen und die Fehlerdetails lesen.
Fügen Sie einfach unten in build.gradle hinzu,
defaultConfig {multiDexEnabled true}
Wenn Sie Firebsae in Ihrem Plugin verwenden, wird dieses Problem durch ein Versionsproblem der Play-Services verursacht. `Cordov
cordova.system.library.4=com.google.gms:google-services:3.3.0
cordova.system.library.5=com.google.Android.gms:play-services-tagmanager:+
cordova.system.library.6=com.google.firebase:firebase-core:16.0.1
cordova.system.library.7=com.google.firebase:firebase-messaging:17.1.0
cordova.system.library.8=com.google.firebase:firebase-crash:16.0.1
cordova.system.library.9=com.google.firebase:firebase-config:16.0.0
cordova.system.library.10=com.google.firebase:firebase-perf:16.0.0
Ändern Sie Ihre project.properties auf diese Weise, dann wird dieses Problem gelöst Referenz
Möglicherweise gibt es eine doppelte Abhängigkeit (möglicherweise in einer anderen Abhängigkeit verschachtelt). Verwenden Sie "gradlew app: dependencies" in der Befehlszeile, um alle Ihre Abhängigkeiten zu überprüfen.
Nach dem Entfernen von Duplikaten wurde das Problem für mich gelöst.
Android {
defaultConfig {
multiDexEnabled true
}
}
compile 'com.google.Android.gms:play-services:11.0.4'
compile 'com.google.Android.gms:play-services-location:11.0.4'
sauber bauen und neu erstellen
Dies wurde hier noch nicht geteilt, so dass es hoffentlich jemandem helfen kann.
Im Anschluss daran Link löste das gleiche Problem für mich.
Zu Beginn stelle ich fest, dass ich multiDexEnabled nicht auf true setzen musste.
Zuerst setze ich Abhängigkeiten in meiner pubspec.yaml auf
dependencies:
flutter:
sdk: flutter
cloud_firestore: ^0.8.2
und lief flutter packages get
in meinem IDE-Terminal.
Außerdem musste ich die minimale Ziel-SDK-Version ändern:
Dies allein kann Ihr Problem beheben. Ich musste jedoch auch Folgendes tun, da einige meiner Abhängigkeitsversionen nicht übereinstimmten.
Ich musste Android/app/build.gradle
öffnen und dann die folgende Zeile als letzte Zeile in die Datei einfügen: apply plugin: 'com.google.gms.google-services'
Als nächstes musste ich Android/build.gradle
öffnen und dann innerhalb des Buildscript-Tags eine neue Abhängigkeit hinzufügen:
buildscript {
repositories {
// ...
}
dependencies {
// ...
classpath 'com.google.gms:google-services:3.2.1' // new
}
}
Danach lief meine App endlich auf dem Android Emulator.
Die Link hat eine vollständigere Anleitung, wenn Sie nicht weiterkommen.
Außerdem musste ich multiDexEnabled nicht auf true setzen.
fügen Sie dies in Ihre App/build.gradle . Es wird klappen
Implementierung 'com.Android.support:design:27.1.0'
Überprüfen Sie die Version der Abhängigkeiten, wenn sie nicht gleich sind, und machen Sie sie gleich, um das Problem zu lösen
compile 'com.Android.support:appcompat-v7:27.0.2'
compile 'com.Android.support:recyclerview-v7:27.0.2'
compile 'com.Android.support:cardview-v7:27.0.2'
Nach dem Upgrade einiger Abhängigkeiten fand ich Lösungen. Wir sollten die neueste Spieldienstversion verwenden. In build.gradle [app] Abhängigkeit.
compile 'com.Android.support:multidex:1.0.2'
compile 'com.google.Android.gms:play-services:11.8.0'
compile 'com.google.firebase:firebase-core:11.8.0'
In build.gradle [project] sollten wir das neueste Google-Plug-In verwenden.
classpath 'com.google.gms:google-services:3.1.1'
Ich teile auch den Code zum besseren Verständnis.
Android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.***.user"
minSdkVersion 17
targetSdkVersion 26
versionCode 26
versionName "1.0.20"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
aaptOptions {
cruncherEnabled = false
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
Leider haben weder Michels noch Suragchs Lösungen für mich funktioniert.
Was ich schließlich tun musste, war einfach, meinen com.google.firebase:firebase-database
auf Version 10.0.1 zurückzusetzen, da 11.4.0 eine Warnung bezüglich Abhängigkeitsinkonsistenz in meiner App-Gradle-Datei verursachte.
Für mich war das Problem, dass zwei der Gläser, die ich in das Projekt aufgenommen hatte, dieselben Klassen hatten.
Für 1 dieser Gläser musste ich die Klassen ausschließen:
jar {
exclude('com/files/to/exclude/**')
}
Einfache Lösung hat für mich funktioniert:
Dann Clean und Rebuild Projekt.
In meinem Fall importierte der Fehler die Abhängigkeit:
Implementation 'com.firebaseui: firebase-ui: 2.3.0'
und ich benutzte es nicht, es fing an zu arbeiten, als ich es löschte, das Projekt sauber machte und erneut dekompliziert. Natürlich habe ich auch das gemacht, was die Leute oben gemacht haben.
und schlussendlich...
Ändern Sie Ihre buildToolsVersion in eine andere Version und synchronisieren Sie sie, ändern Sie sie zurück und synchronisieren Sie erneut. Es wird wieder funktionieren.
Ich hatte das gleiche Problem. Ich habe das Problem gelöst, indem ich eine Bereinigung durchgeführt und dann das Projekt aus dem Android Studio 3.0-Menü erstellt habe:
In meinem Fall bestand das Problem darin, dass ich dieselbe Bibliothek zweimal in meiner build.gradle-Datei implementierte. Das Entfernen des doppelten Eintrags hat für mich funktioniert. Und brauchte nicht einmal das Projekt zu reinigen, umzubauen.
In meinem Projekt habe ich mehr als zwei Module und sdks, ich probiere alle Vorschläge oder Antworten aus, die oben aufgeführt sind
Alle arbeiten vorübergehend, aber wenn ich die Projektstruktur (cntrl + altr + shift + s) öffne, habe ich festgestellt, dass in meiner Projekteigenschaft nichts wie -.__ ausgewählt wird. - SDK-Version kompilieren, SDK-Version erstellen - In Geschmacksrichtungen gleich
Ich aktualisiere all dies und führe ein sauberes und neu erstelltes Projekt durch, und es funktioniert für mich.
Das funktioniert für mich-
Fügen Sie endlich Code in den Plattformen\Android\build.gradle hinzu
configurations.all {
resolutionStrategy{
force 'com.Android.support:support-v4:26.0.0'
}
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.Android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.0.0'
}
}
}
}
In meinem Fall importiere ich eine "Android_support" -Bibliothek zweimal, so dass ich eine unter "Libs" -Verzeichnis lösche und neu aufbaut.
In den meisten Fällen funktioniert das .. Es funktioniert für mich
Schritt 1: Fügen Sie in build.gradle (Modul: app) Folgendes hinzu: defaultConfig { multiDexEnabled true }
Schritt 2: tun Sie dies: Build => Clean Project
Schritt 3: Führen Sie folgende Schritte aus: Erstellen => Projekt neu erstellen
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 27
defaultConfig {
applicationId "com.xyz.name"
minSdkVersion 14
targetSdkVersion 27
versionCode 7
versionName "1.6"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:27.1.0'
implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.1'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.Android.volley:volley:1.0.0'
implementation 'com.wang.avi:library:2.1.3'
implementation 'com.Android.support:design:27.1.0'
implementation 'com.Android.support:support-v4:27.1.0'
implementation 'de.hdodenhof:circleimageview:2.1.0'
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.theartofdev.edmodo:Android-image-cropper:2.6.0'
implementation 'com.loopj.Android:android-async-http:1.4.9'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.felipecsl.asymmetricgridview:library:2.0.1'
implementation 'com.Android.support:recyclerview-v7:27.1.0'
implementation 'com.github.darsh2:MultipleImageSelect:3474549'
implementation 'it.sephiroth.Android.library.horizontallistview:hlistview:1.2.2'
implementation 'com.Android.support:multidex:1.0.1'
}
apply plugin: 'com.google.gms.google-services'
Hinweis: Aktualisieren Sie Ihre gesamte Support-Bibliothek wie oben beschrieben auf 27.1.0, und entfernen Sie Duplikate
Es ist ein häufiges Problem, wenn Sie zwei Versionen derselben Bibliothek hinzugefügt haben. Entweder in der Abhängigkeit oder in der Bibliothek.
Keine der oben genannten Lösungen funktionierte für mich: multiDex aktivieren, bereinigen, neu erstellen, .gradle-Datei löschen. Das letzte, was ich tat, war, ein brandneues Projekt zu erstellen, das Verzeichnis src zu löschen und durch das vorherige zu ersetzen . Kopieren Sie alle Bibliotheken, die Sie benötigen, um build.gradle (app) zu erstellen, zu synchronisieren und es sollte fehlerfrei erstellt werden.
Prüfen Sie, ob Sie debugCompile
und releaseCompile
in build.gradle haben. Ändern Sie es in debugImplementation
und releaseImplementation
. So habe ich es gelöst, gradle sollte diese erfolgreich gekennzeichneten Anweisungen als veraltet durchlaufen lassen, aber plötzlich blieb es genau auf diesen beiden hängen.
./gradlew :app:assembleStubLiveDebug -debug -stacktrace
Oder ähnlich (den Aufgabennamen (:app:assembleStubLiveDebug
) von Android Studio erhalten).