Nach dem Update auf Android Studio 2.3 erhielt ich diese Fehlermeldung ... Ich weiß, es ist nur ein Hinweis, wie die App normal läuft, aber es ist wirklich seltsam.
Alle com.Android.support-Bibliotheken müssen exakt dieselbe Versionsspezifikation verwenden (das Mischen von Versionen kann zu Laufzeitabstürzen führen). Gefundene Versionen 25.1.1, 24.0.0. Beispiele hierfür sind com.Android.support:animated-vector-drawable: 25.1.1 und com.Android.support:mediarouter-v7:24.0.0
mein gradle:
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'
})
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:25.1.1'
compile 'com.Android.support:support-v4:25.1.1'
compile 'com.Android.support:design:25.1.1'
compile 'com.Android.support:recyclerview-v7:25.1.1'
compile 'com.Android.support:cardview-v7:25.1.1'
compile 'com.google.Android.gms:play-services-maps:10.2.0'
compile 'com.google.Android.gms:play-services:10.2.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.blankj:utilcode:1.3.6'
compile 'com.orhanobut:logger:1.15'
compile 'com.facebook.stetho:stetho:1.4.2'
provided 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile 'com.mikepenz:iconics-core:[email protected]'
compile('com.mikepenz:materialdrawer:[email protected]') { transitive = true }
compile 'com.mikepenz:google-material-typeface:[email protected]'
compile 'me.zhanghai.Android.materialprogressbar:library:1.3.0'
compile 'com.github.GrenderG:Toasty:1.1.1'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
compile 'com.github.MAXDeliveryNG:slideview:1.0.0'
compile 'com.facebook.fresco:fresco:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.maps.Android:android-maps-utils:0.4.4'
compile 'com.github.jd-alexander:library:1.1.0'
}
Sie können dies mit einer der folgenden Lösungen lösen:
Ab Android Studio 3.0 wird es viel einfacher, da es jetzt einen hilfreicheren Hinweis zeigt. Daher müssen wir nur diesem Hinweis folgen.
zum Beispiel:
Alle com.Android.support-Bibliotheken müssen dieselbe Version .__ verwenden. Spezifikation (Mischversionen können zu Laufzeitabstürzen führen). Gefunden Versionen 27.0.2, 26.1.0. Beispiele beinhalten com.Android.support:animated-vector-drawable: 27.0.2 und com.Android.support:customtabs:26.1.0
es gibt einige Kombinationen von Bibliotheken oder Tools und Bibliotheken, die sind nicht kompatibel oder können zu Fehlern führen. Eine solche Inkompatibilität ist Kompilieren mit einer Version der Android-Unterstützungsbibliotheken, die nicht .__ ist. die neueste Version (oder insbesondere eine Version, die niedriger ist als Ihre targetSdkVersion.)
Lösung:
Fügen Sie die Bibliothek explizit mit der alten Version hinzu, jedoch mit einer neuen Versionsnummer.
In meinem Fall com.Android.support:customtabs:26.1.0
muss ich Folgendes hinzufügen:
implementation "com.Android.support:customtabs:27.0.2"
dh: Nehmen Sie die Bibliothek aus dem zweiten Element und implementieren Sie sie mit der Versionsnummer aus dem ersten.
Hinweis: Vergessen Sie nicht, jetzt auf sync zu drücken, damit Gradle den Abhängigkeitsgraphen neu aufbauen und prüfen kann, ob weitere Konflikte vorliegen.
Erklärung:
Sie werden möglicherweise durch die Fehlermeldung verwirrt, da customtabs
nicht verwendet wird. So habe ich einen Konflikt !!
Sie haben es nicht direkt verwendet, aber eine Ihrer Bibliotheken verwendet intern eine alte Version von customtabs
, Sie müssen also direkt danach fragen.
wenn Sie wissen möchten, welche Ihrer Bibliotheken für die alte Version verantwortlich ist, und den Autor möglicherweise um Aktualisierung seiner Bibliothek bitten, führen Sie einen Gradle-Abhängigkeitsbericht aus. Lesen Sie die alte Antwort, um zu erfahren, wie.
Beachten Sie dies
inspiriert von CommonsWare answer :
Führen Sie einen Gradle-Abhängigkeitsbericht aus, um zu sehen, wie Ihr vollständiger Baum der Abhängigkeiten ist.
Von dort aus können Sie sehen, welche Ihrer Bibliotheken nach einer anderen Version der Android-Support-Bibliotheken fragt. Für was auch immer Sie danach fragen, können Sie sie direkt mit der Version 25.2.0 oder der Version 25.2.0 anfordern Die anderen Konfliktlösungsansätze von Gradle verwenden dieselben Versionen.
Ab der gradle Plugin-Version: 3.0 compile
wurde durch implementation
oder api
ersetzt. Siehe diese Antwort für den Unterschied.
verwenden Sie daher stattdessen:
./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
oder für Windows cmd:
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
und suche nach der konfliktreichen Version.
Für mich verschwand der Fehler nach dem Entfernen von com.google.Android.gms:play-services:10.2.0
Und nur com.google.Android.gms:play-services-location:10.2.0
und com.google.Android.gms:play-services-maps:10.2.0
enthalten, da dies die einzigen beiden Play-Services sind, die ich benutze.
Ich denke, der gms:play-services
hängt von einigen alten Komponenten der Unterstützungsbibliothek ab, daher müssen wir sie explizit selbst hinzufügen.
für AS 3.0 eine ältere.
Lauf:
./gradlew -q dependencies <module-name>:dependencies --configuration implementation
Beispiel:
./gradlew -q dependencies app:dependencies --configuration implementation
wenn jemand einen besseren Weg im neuen Gradle-Plugin kennt, lass es mich wissen.
project/.idea/libraries
und sehen Sie, welche Bibliotheken sich unterscheiden.build.gradle
-Datei einfügen.Z.B.:
compile 'com.Android.support:appcompat-v7:25.2.0'
// Wrong library version found on 1st point
compile 'com.Android.support:customtabs:25.2.0'
Achten Sie auf das kleine Informationsfenster, das etwas über den Fehler aussagt, es enthält die Beispiele, die Sie ändern müssen, und .
In diesem Fall:
Gefundene Versionen 25.1.1, 24.0.0. Beispiele sind com.Android.support:animated-vector-drawable: 25.1.1 und com.Android.support:mediarouter-v7:24.0.0
Ihre
com.Android.support:animated-vector-drawable:25.1.1
ist Version 25.1.1 und Ihre
com.Android.support:mediarouter-v7:24.0.0
ist Version 24.0.0, daher müssen Sie den Mediarouter mit derselben Version hinzufügen:
com.Android.support:mediarouter-v7:25.1.1
Und tun Sie dies für jedes Beispiel, das das kleine Informationsfenster sagt: in diesem Fall alle Bibliotheken, die nicht die Version 25.1.1 haben.
Sie müssen das Gradle synchronisieren, nachdem Sie die angegebene Bibliothek repariert haben, um die nächste Bibliothek und das nächste Paket anzuzeigen, die Sie ändern müssen.
WICHTIG:
Sie können auch eine andere Methode verwenden, um den Unterschied der Versionen aller Bibliotheken zu sehen, die Sie gerade kompilieren (z. B. Ausführen eines Abhängigkeitsberichts oder Durchsuchen der Bibliotheksdateien). Das eigentliche Ziel besteht darin, alle Bibliotheken zu kompilieren, die Sie verwenden mit der gleichen Version verwenden .
Fügen Sie dies am Ende Ihres build.gradle (Modul: app) hinzu:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.Android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.1'
}
}
}
}
Stellen Sie sicher, dass Sie "25 .3.1" durch die Version der Android-Unterstützungsbibliothek ersetzen, die Sie für alle Abhängigkeiten verwenden möchten. Diese sollte nicht niedriger sein als Ihre komplizierte SDK-Version
als wieder synchronisieren gradle
Der beste Weg, das Problem zu lösen, ist die Implementierung aller von Android Studio vorgeschlagenen 'com.Android.support: ...'
(Egal welche Unterstützungsversionen Sie verwenden - 27.1.1, 28.0.0 usw.)
setzen Sie den Cursor in die Fehlerzeile, zB:
implementation 'com.Android.support:appcompat-v7:28.0.0'
Android Studio schlägt vor, welche "com.Android.support: ..." andere Version ist als die "Com.Android.support:appcompat-v7:28.0.0".
beispiel
Alle com.Android.support-Bibliotheken müssen exakt dieselbe Versionsspezifikation verwenden (das Mischen von Versionen kann zu Laufzeitabstürzen führen). Gefundene Versionen 28.0.0, 27.1.0, 27.0.2. Beispiele sind com.Android.support:animated-vector-drawable:28.0.0 und com.Android.support:exifinterface:27.1.0
so füge com.Android.support:animated-vector-drawable:28.0.0
.__ hinzu. & com.Android.support:exifinterface:28.0.0
. synchronisiert jetzt die gradle-Datei.
versuchen Sie nacheinander alle vorgeschlagenen 'com.Android.support: ...' zu implementieren, bis in dieser Zeile kein Fehler auftritt. implementation 'com.Android.support:appcompat-v7:28.0.0'
In meinem Fall habe ich hinzugefügt
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:animated-vector-drawable:28.0.0'
implementation 'com.Android.support:exifinterface:28.0.0'
implementation 'com.Android.support:cardview-v7:28.0.0'
implementation 'com.Android.support:customtabs:28.0.0'
implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.Android.support:support-v4:28.0.0'
all diese Abhängigkeiten ... für andere kann es anders sein.
Ich hatte genau das gleiche Problem nach dem Update auf Android Studio 2.3
Das Hinzufügen dieser Zeile zu Abhängigkeiten löste mein Problem:
compile 'com.Android.support:customtabs:25.2.0'
A) Führen Sie gradle dependencies
oder ./gradlew dependencies
aus.
B) Sehen Sie sich Ihren Baum an und finden Sie heraus, welche Ihrer Abhängigkeiten eine andere Version der Unterstützungsbibliothek für eine Abhängigkeit angibt, die Sie nicht kontrollieren können.
Ich wusste nicht, dass diese Warnung auch angezeigt wird, wenn die Abhängigkeit von Ihrem eigenen Code nicht vollständig verwendet wird. In meinem Fall gibt Facebook einige Support-Bibliotheken an, die ich nicht verwendet habe. Die meisten dieser Abhängigkeiten wurden durch meine eigene Spezifikation von 25.2.0 außer Kraft gesetzt, die mit den Symbolen -> X.X.X (*) gekennzeichnet ist. Die Kartenansicht und die benutzerdefinierten Registerkarten wurden von niemandem überschrieben. Daher muss ich selbst nach 25.2.0 fragen, auch wenn ich sie nicht verwende.
+--- com.facebook.Android:facebook-Android-sdk:4.17.0
| +--- com.Android.support:support-v4:25.0.0 -> 25.2.0 (*)
| +--- com.Android.support:appcompat-v7:25.0.0 -> 25.2.0 (*)
| +--- com.Android.support:cardview-v7:25.0.0
| | \--- com.Android.support:support-annotations:25.0.0 -> 25.2.0
| +--- com.Android.support:customtabs:25.0.0
| | +--- com.Android.support:support-compat:25.0.0 -> 25.2.0 (*)
| | \--- com.Android.support:support-annotations:25.0.0 -> 25.2.0
| \--- com.parse.bolts:bolts-Android:1.4.0 (*)
Wenn gradle dich schon gewarnt und Beispiele gegeben hat ...
Beispiele hierfür sind com.Android.support:animated-vector-drawable:25.1.1 und com.Android.support:mediarouter-v7:24.0.0
... es ist sogar noch einfacher, wenn Sie für die niedrigere Version einige grep-Hervorhebungen einfügen, da gradle dependencies
ziemlich ausführlich sein kann:
./gradlew dependencies | grep --color -E 'com.Android.support:mediarouter-v7|$'
Use variables: Etwas wie das Folgende macht es Ihnen leichter sicherzustellen, dass Sie mit allen Bibliotheken dieselbe Version verwenden
dependencies {
ext {
support_library_version = '25.2.0'
google_play_services_version = '10.2.0'
}
//#####################################################################
// Support Library
//#####################################################################
compile "com.Android.support:appcompat-v7:${support_library_version}"
compile "com.Android.support:palette-v7:${support_library_version}"
compile "com.Android.support:design:${support_library_version}"
//#####################################################################
// Google Play Services
//#####################################################################
compile "com.google.Android.gms:play-services-auth:${google_play_services_version}"
compile "com.google.Android.gms:play-services-ads:${google_play_services_version}"
compile "com.google.Android.gms:play-services-analytics:${google_play_services_version}"
//#####################################################################
// Firebase
//#####################################################################
compile "com.google.firebase:firebase-core:${google_play_services_version}"
compile "com.google.firebase:firebase-auth:${google_play_services_version}"
compile "com.google.firebase:firebase-messaging:${google_play_services_version}"
Weitere Informationen dazu, wie Google die Verwendung dieser Versionierung vorschlägt, finden Sie in diesem Artikel: https://developer.Android.com/studio/build/index.html#top-level
Ich füge einfach das hinzu:
compile 'com.Android.support:mediarouter-v7:25.2.0'
Updated
für neue SDK-Versionen
compile 'com.Android.support:mediarouter-v7:28.0.0-alpha3'
Wenn derselbe Fehler auf appcompat
lautet
implementation 'com.Android.support:appcompat-v7:27.0.1'
durch das Hinzufügen von design
wurde das Problem gelöst.
implementation 'com.Android.support:appcompat-v7:27.0.1'
implementation 'com.Android.support:design:27.0.1'
Für mich das Hinzufügen
implementation 'de.mrmaffen:vlc-Android-sdk:2.0.6'
war appcompat-v7:23.1.1
in
.idea/Bibliotheken
ohne vlc
reicht appcompat
aus.
Wie Sie bereits alle Antworten und Kommentare oben gesehen haben, ist diese Antwort etwas, was ein neuer Entwickler möglicherweise nicht so leicht bekommt.
./gradlew -q Abhängigkeiten app: Abhängigkeiten --Konfiguration kompilieren
Die obige Zeile wird ohne Zweifel Ihr Leben retten, aber wie Sie den genauen Punkt aus dem Ergebnis der obigen Zeile erhalten.
Wenn Sie das gesamte Abhängigkeitsdiagramm oder die Liste mit dem obigen Befehl abrufen, müssen Sie die in Konflikt stehende Versionsnummer suchen, die Sie in Ihrem Code erhalten. Bitte sehen Sie das Bild unten.
in der Abbildung oben sehen Sie, dass 23.4.0 das Problem verursacht, das wir aber nicht in unserer Gradle-Datei finden können. Nun wird uns diese Versionsnummer (23.4.0) retten. Wenn wir diese Nummer haben, finden wir diese Nummer im Ergebnis des obigen Befehlsergebnisses und importieren diese Abhängigkeit direkt in unsere Gradle-Datei. Bitte sehen Sie sich das Bild unten an, um eine klare Sicht zu erhalten.
sie können deutlich sehen, dass com.Android.support:cardview-v7:23.4.0 und com.Android.support:customtabs:23.4.0 die Version verwenden, die das Problem verursacht. Nun kopieren Sie einfach diese Zeile aus Abhängigkeitsliste Und verwenden Sie sie explizit in unserer Gradle-Datei, jedoch mit dem aktualisierten Versionslink
Implementierung "com.Android.support:cardview-v7:26.1.0" Implementierung "com.Android.support:customtabs:26.1.0"
Eine andere Möglichkeit, Konflikte zu lösen, besteht darin, die richtige Version für alle Abhängigkeiten wie folgt zu erzwingen:
dependencies {
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.Android.support' && details.requested.name == 'support-v4') {
details.useVersion "27.0.2"
}
}
...
}
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
Verwenden Sie support-v13 anstelle von support-v4
compile 'com.Android.support:support-v13:25.2.0'
Ich habe die gleiche Fehlermeldung erhalten, nachdem compile 'com.google.Android.gms:play-services:10.2.4'
mit compile 'com.Android.support:appcompat-v7:25.3.1'
hinzugefügt wurde.
Durch Hinzufügen von animated-vector-drawable
und mediarouter libs
wurde das Problem behoben.
compile 'com.google.Android.gms:play-services:10.2.4'
compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:animated-vector-drawable:25.3.1'
compile 'com.Android.support:mediarouter-v7:25.3.1'
Ich hatte folgendes:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:design:27.1.1'
implementation 'com.Android.support:support-v4:27.1.1'
implementation 'com.google.firebase:firebase-auth:12.0.1'
implementation 'com.google.firebase:firebase-firestore:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.Android.gms:play-services-auth:12.0.1'
implementation'com.facebook.Android:facebook-login:[4,5)'
implementation 'com.Twitter.sdk.Android:Twitter:3.1.1'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'org.jetbrains:annotations-Java5:15.0'
implementation project(':vehiclesapi')
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'
}
Die Lösungen waren einfach - die primären Abhängigkeiten waren alle korrekt, so dass jedoch Abhängigkeiten von Dritten bestehen. Nacheinander entfernt, bis der Täter gefunden wurde und sich als Facebook herausstellte! Es verwendet Version 27.0.2 der Android-Unterstützungsbibliotheken. Ich habe versucht, die Cardview-Version 27.1.1 hinzuzufügen, aber das funktionierte nicht, obwohl die Lösung immer noch einfach genug war.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:design:27.1.1'
implementation 'com.Android.support:support-v4:27.1.1'
implementation 'com.google.firebase:firebase-auth:12.0.1'
implementation 'com.google.firebase:firebase-firestore:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.Android.gms:play-services-auth:12.0.1'
implementation('com.facebook.Android:facebook-login:[4,5)'){
// contains com.Android.support:v7:27.0.2, included required com.Android.support.*:27.1.1 modules
exclude group: 'com.Android.support'
}
implementation 'com.Android.support:cardview-v7:27.1.1' // to replace facebook sdk's cardview-v7:27.0.2.
implementation 'com.Twitter.sdk.Android:Twitter:3.1.1'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'org.jetbrains:annotations-Java5:15.0'
implementation project(':vehiclesapi')
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'
}
Mein Problem ist ähnlich wie bei Ihnen . Hier existiert ein Fehler!
compile 'com.Android.support:appcompat-v7:25.3.0'
Alle com.Android.support-Bibliotheken müssen exakt dieselbe Versionsspezifikation verwenden (das Mischen von Versionen kann zu Laufzeitabstürzen führen). Gefundene Versionen 25.3.0, 24.0.0. Beispiele sind "com.Android.support:animated-vector-drawable:25.3.0" und "com.Android.support:mediarouter-v7:24.0.0".
Dies sehen Beispiele sind "com.Android.support:animated-vector-drawable:25.3.0" und "com.Android.support:mediarouter-v7:24.0.0".
fügen Sie diese Codes einfach in Abhängigkeiten hinzu. Stellen Sie sicher, dass die Versionen identisch sind.
compile 'com.Android.support:animated-vector-drawable:25.3.0'
compile 'com.Android.support:mediarouter-v7:25.3.0'
Ich hatte zuvor das gleiche Problem und bekam die Lösung dafür.
Ich habe gerade die Bibliotheken hinzugefügt, die eine andere Version hatten, jedoch mit der gleichen Version meines support:appcompat
.
Für Ihren Fehler zum Beispiel:
Alle com.Android.support-Bibliotheken müssen dieselbe Version .__ verwenden. Spezifikation (Mischversionen können zu Laufzeitabstürzen führen). Gefunden Versionen 25.1.1, 24.0.0. Beispiele beinhalten com.Android.support:animated-vector-drawable: 25.1.1 und com.Android.support:mediarouter-v7:24.0.0
* Die Lösung besteht darin, die Versionen dieser Bibliotheken folgendermaßen zu kompilieren:
compile 'com.Android.support:mediarouter-v7:25.1.1'
-wenn eine andere Bibliothek das gleiche Problem hatte und eine andere Version nur mit Ihrer support:appcompat
-Version kompilieren ließ
Dies hat mein Problem gelöst und ich hoffe, es löst Ihr.
Schöne Grüße :)
Ich habe diese beiden verwendet, um mein Problem nach dem Upgrade auf Android Studio 2.3 zu lösen
compile 'com.Android.support:animated-vector-drawable:25.0.0'
compile 'com.Android.support:mediarouter-v7:25.0.0'
Nach dem Suchen und Kombinieren von Antworten, 2018 Version dieser Frage, funktionierte es für mich:
1) Wechseln Sie auf der Navigationsregisterkarte zur Projektansicht
2) Navigieren Sie zu [YourProjectName] /. Idea/libraries/.
3) Löschen Sie alle Dateien, die mit Gradle__com_Android_support_ [Bibliotheksname] beginnen.
E: Gradle__com_Android_support_animated_vector_drawable_26_0_0.xml
4) Definieren Sie in Ihrer Gradle-Datei eine Variable und ersetzen Sie die Versionsnummer durch $ {Variablenname}.
Def Variable:
ext {
support_library_version = '28.0.0' //use the version of choice
}
Variable verwenden:
implementation "com.Android.support:cardview-v7:${support_library_version}"
beispiel gradle:
dependencies {
ext {
support_library_version = '28.0.0' //use the version of choice
}
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.Android.support:animated-vector-drawable:${support_library_version}"
implementation "com.Android.support:appcompat-v7:${support_library_version}"
implementation "com.Android.support:customtabs:${support_library_version}"
implementation "com.Android.support:cardview-v7:${support_library_version}"
implementation "com.Android.support:support-compat:${support_library_version}"
implementation "com.Android.support:support-v4:${support_library_version}"
implementation "com.Android.support:support-core-utils:${support_library_version}"
implementation "com.Android.support:support-core-ui:${support_library_version}"
implementation "com.Android.support:support-fragment:${support_library_version}"
implementation "com.Android.support:support-media-compat:${support_library_version}"
implementation "com.Android.support:appcompat-v7:${support_library_version}"
implementation "com.Android.support:recyclerview-v7:${support_library_version}"
implementation "com.Android.support:design:${support_library_version}"
}
update 2018 für diesen Fehler fügen Sie die Implementierung aus der Projektstruktur hinzu
implementation 'com.Android.support:support-v13:28.0.0'
im Projektmodus -> Externe Bibliotheken Dort können Sie Ihr Problem finden. In meinem Fall Ich verwende Version 28 und externe Bibliotheken. Ich fand com.Android.support:support-media-compat-26.0.0
und hier war der Fehler.
nach der Implementierung support v13
und es funktioniert
Sie haben andere Abhängigkeiten definiert, die mit Version 24.0.0
anstelle von 25.1.1
zu kompilieren sind. Bitte setzen Sie die Version aller Abhängigkeiten wie 25.1.1
.
Ich habe das gleiche Problem, aber ich habe dieses Problem gelöst, indem ich diese drei Zeilen hinzufügte
implementation 'com.Android.support:design:27.1.1'
implementation "com.Android.support:customtabs:27.1.1"
implementation 'com.Android.support:mediarouter-v7:27.1.1'
jetzt funktioniert alles perfekt
Hier ist mein Fluss, um diese Warnung zu beheben
build.gradle
Android {
compileSdkVersion ... // must same version (ex: 26)
...
}
dependencies {
...
compile 'any com.Android.support... library' // must same version (ex: 26.0.1)
compile 'any com.Android.support... library' // must same version (ex: 26.0.1)
...
compile ('a library B which don't use 'com.Android.support...' OR use SAME version of 'com.Android.support'){
// do nothing
}
...
compile ('a library C which use DIFFERENT 'com.Android.support...' (ex:27.0.1) {
// By default, if use don't do anything here your app will choose the higher com.Android.support... for whole project (in this case it is 27.0.1)
// If you want to use 26.0.1 use
exclude group: 'com.Android.support', module: '...' (ex module: 'appcompat-v7')
exclude group: 'com.Android.support', module: 'another module'
...
// If you want to use 27.0.1 do
Upgrade `compileSdkVersion` and all 'com.Android.support' to 27.0.1.
(It may be a good solution because the best practice is always use latest `compileSdkVersion`.
However, use 26 or 27 is base on you for example higher library may have bug)
}
}
Zum Anzeigen/Überprüfen der dependencies
aller Bibliothek in Ihrer App
Terminal öffnen und ./gradlew app:dependencies
ausführen
Um die dependencies
einer bestimmten Bibliothek in Ihrer App anzuzeigen, folgen Sie der Anleitung hier: - So können Sie Abhängigkeiten einer bestimmten Abhängigkeit in Gradle ausschließen
Ich hoffe es hilft
Ich habe ./gradlew -Aufgaben ausgeführt und alle Abhängigkeiten überprüft, die sich von der Zielversion (25.3.1) unterschieden. Sie werden so etwas bekommen:
app:prepareComAndroidSupportAnimatedVectorDrawable2531Library - Prepare com.Android.support:animated-vector-drawable:25.3.1
app:prepareComAndroidSupportAppcompatV72531Library - Prepare com.Android.support:appcompat-v7:25.3.1
app:prepareComAndroidSupportCardviewV72531Library - Prepare com.Android.support:cardview-v7:25.3.1
app:prepareComAndroidSupportCustomtabs2531Library - Prepare com.Android.support:customtabs:25.3.1
app:prepareComAndroidSupportDesign2531Library - Prepare com.Android.support:design:25.3.1
app:prepareComAndroidSupportMediarouterV72531Library - Prepare com.Android.support:mediarouter-v7:25.3.1
app:prepareComAndroidSupportPaletteV72531Library - Prepare com.Android.support:palette-v7:25.3.1
app:prepareComAndroidSupportRecyclerviewV72531Library - Prepare com.Android.support:recyclerview-v7:25.3.1
app:prepareComAndroidSupportSupportCompat2531Library - Prepare com.Android.support:support-compat:25.3.1
app:prepareComAndroidSupportSupportCoreUi2531Library - Prepare com.Android.support:support-core-ui:25.3.1
app:prepareComAndroidSupportSupportCoreUtils2531Library - Prepare com.Android.support:support-core-utils:25.3.1
app:prepareComAndroidSupportSupportFragment2531Library - Prepare com.Android.support:support-fragment:25.3.1
app:prepareComAndroidSupportSupportMediaCompat2531Library - Prepare com.Android.support:support-media-compat:25.3.1
app:prepareComAndroidSupportSupportV42531Library - Prepare com.Android.support:support-v4:25.3.1
app:prepareComAndroidSupportSupportVectorDrawable2531Library - Prepare com.Android.support:support-vector-drawable:25.3.1
app:prepareComAndroidSupportTransition2531Library - Prepare com.Android.support:transition:25.3.1
app:prepareComAndroidVolleyVolley100Library - Prepare com.Android.volley:volley:1.0.0
app:prepareComCrashlyticsSdkAndroidAnswers1312Library - Prepare com.crashlytics.sdk.Android:answers:1.3.12
app:prepareComCrashlyticsSdkAndroidBeta124Library - Prepare com.crashlytics.sdk.Android:beta:1.2.4
app:prepareComCrashlyticsSdkAndroidCrashlytics267Library - Prepare com.crashlytics.sdk.Android:crashlytics:2.6.7
app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2316Library - Prepare com.crashlytics.sdk.Android:crashlytics-core:2.3.16
app:prepareComFacebookAndroidFacebookAndroidSdk4161Library - Prepare com.facebook.Android:facebook-Android-sdk:4.16.1
app:prepareComGoogleAndroidGmsPlayServicesAnalytics1026Library - Prepare com.google.Android.gms:play-services-analytics:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl1026Library - Prepare com.google.Android.gms:play-services-analytics-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuth1026Library - Prepare com.google.Android.gms:play-services-auth:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuthBase1026Library - Prepare com.google.Android.gms:play-services-auth-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBase1026Library - Prepare com.google.Android.gms:play-services-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBasement1026Library - Prepare com.google.Android.gms:play-services-basement:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesCast1026Library - Prepare com.google.Android.gms:play-services-cast:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesLocation1026Library - Prepare com.google.Android.gms:play-services-location:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesMaps1026Library - Prepare com.google.Android.gms:play-services-maps:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTagmanagerV4Impl1026Library - Prepare com.google.Android.gms:play-services-tagmanager-v4-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTasks1026Library - Prepare com.google.Android.gms:play-services-tasks:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalytics1026Library - Prepare com.google.firebase:firebase-analytics:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalyticsImpl1026Library - Prepare com.google.firebase:firebase-analytics-impl:10.2.6
app:prepareComGoogleFirebaseFirebaseAppindexing1024Library - Prepare com.google.firebase:firebase-appindexing:10.2.4
app:prepareComGoogleFirebaseFirebaseCommon1026Library - Prepare com.google.firebase:firebase-common:10.2.6
app:prepareComGoogleFirebaseFirebaseCore1026Library - Prepare com.google.firebase:firebase-core:10.2.6
app:prepareComGoogleFirebaseFirebaseIid1026Library - Prepare com.google.firebase:firebase-iid:10.2.6
app:prepareComGoogleFirebaseFirebaseMessaging1026Library - Prepare com.google.firebase:firebase-messaging:10.2.6
app:prepareComMindorksPlaceholderview027Library - Prepare com.mindorks:placeholderview:0.2.7
app:prepareDebugAndroidTestDependencies
app:prepareDebugDependencies
app:prepareDebugUnitTestDependencies
app:prepareInfoHoang8fAndroidSegmented105Library - Prepare info.hoang8f:Android-segmented:1.0.5
app:prepareIoFabricSdkAndroidFabric1316Library - Prepare io.fabric.sdk.Android:fabric:1.3.16
app:prepareNoNordicsemiAndroidLog211Library - Prepare no.nordicsemi.Android:log:2.1.1
app:prepareNoNordicsemiAndroidSupportV18Scanner100Library - Prepare no.nordicsemi.Android.support.v18:scanner:1.0.0
In diesem Fall zielte ich auf 25.3.1 und hatte bei der Ausführung dieses Befehls einige Abhängigkeiten, die auf verschiedene Versionen abzielten. Der Trick besteht darin, die Abhängigkeiten in dieser Liste zu identifizieren, die auf frühere Versionen abzielen, und diese zu überschreiben, indem die neueste Version der Abhängigkeit in Gradle importiert wird.
Stellen Sie sicher, dass alle Abhängigkeiten von Facebook SDK die gleiche Unterstützungsbibliothekversion Ihres Projekts verwenden:
dependencies {
// Facebook SDK dependencies, excluding Bolts
compile "com.Android.support:appcompat-v7:25.4.0"
compile "com.Android.support:cardview-v7:25.4.0"
compile "com.Android.support:customtabs:25.4.0"
compile "com.Android.support:design:25.4.0"
compile "com.facebook.Android:facebook-Android-sdk:4.23.0"
}
Hatte dasselbe Problem nach der Aktualisierung auf Android Studio 2.3, bestand das Update darin, das folgende Paket in den build.gradle
hinzuzufügen:
compile 'com.Android.support:support-v13:25.3.1'
Hinweis: Ändern Sie die Version, um sie an andere in Ihrem Projekt verwendete Support-Bibliothekspakete anzupassen
Öffnen Sie die externe Bibliothek Ihres Projekts. Sie werden feststellen, dass einige Bibliotheken noch die vorherige Version verwenden, obwohl Sie diese Bibliothek nicht erwähnt haben. Mein Vorschlag ist, dass Sie einfach die jeweilige Bibliotheksversion verwenden.
Ich musste die folgenden Zeilen in gradle hinzufügen, um den Fehler zu beheben
compile 'com.Android.support:animated-vector-drawable:25.2.0'
compile 'com.Android.support:preference-v7:25.2.0'
compile 'com.Android.support:customtabs:25.2.0'
compile 'com.Android.support:cardview-v7:25.2.0'
Heben Sie den Fehler hervor und drücken Sie "ALT + ENTER". Daraufhin wird eine Option angezeigt:
Bibliotheksabhängigkeit hinzufügen> Intentionseinstellungen bearbeiten
Dies bringt Sie zu einem Menü, in dem Sie die spezifische Abhängigkeit der Supportprobleme sehen, die sich von Support-Compates unterscheidet. Erstellen Sie die Abhängigkeit in Gradle (com 'XXX') und stellen Sie die Version so ein, dass sie der von Support-Compatible entspricht. Gradle synchronisieren und fertig.
Für mich war der Fehler das Ergebnis einer von mir importierten Bibliothek eines Drittanbieters, die ältere Module der Google Support Library verwendete. Ich habe sie einfach auf die neueste Version aktualisiert (z. B. auf Github überprüfen), und der Fehler war verschwunden. Ich schlage vor, dass alle Nicht-Google-Bibliotheken, die Sie in Ihrem build.gradle
enthalten, auf dem neuesten Stand sind.
implementation 'com.Android.support:appcompat-v7:26.1.0'
nach dieser Zeile müssen Sie eine neue Zeile in Ihrem Gradle hinzufügen
implementation 'com.Android.support:design:26.1.0'
Ich aktualisiere gerade mein Android Support Repository auf (Version: 44.0.0); Dann Android SDK-Tools und Emulator auf die neueste Version 25.3.1 von SDK-Manager> SDK-Tools Und es hat mein Problem gelöst.
Ich hatte diese Abhängigkeiten in meinem Projekt:
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
implementation 'com.Android.support:support-v4:28.0.0'
implementation 'com.Android.support:design:28.0.0'
implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.google.Android.gms:play-services-maps:16.1.0'
implementation 'com.google.firebase:firebase-database:17.0.0'
implementation 'com.google.firebase:firebase-storage:17.0.0'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
implementation 'com.firebaseui:firebase-ui-storage:0.6.0'
Bisher schien nichts falsch zu sein, aber ich bekam diese Nachricht:
Gefundene Versionen 28.0.0, 23.4.0. Beispiele sind com.Android.support:animated-vector-drawable:28.0.0 und com.Android.support:palette-v7:23.4.
Dann habe ich gemacht:
$ ./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath >> dep.txt
In der Datei habe ich nach Palette gesucht und festgestellt, dass es vom Firebase-Speicher verwendet wurde:
\--- com.firebaseui:firebase-ui-storage:0.6.0
+--- com.Android.support:appcompat-v7:23.4.0 -> 28.0.0 (*)
+--- com.Android.support:palette-v7:23.4.0
Nach dem Hinzufügen:
implementation 'com.Android.support:palette-v7:28.0.0'
Scheint behoben und kein Fehler mehr.
//Prost
Ich habe dieses Problem nach einem Update auf Android Studio 2.3 erhalten
Das Hinzufügen dieser Zeilen in Abhängigkeiten löste mein Problem
compile 'com.Android.support:customtabs:25.2.0'
compile 'com.Android.support:palette-v7:25.2.0'
ersetzen Sie dies
compile 'com.Android.support:appcompat-v7:25.2.0'
dadurch
compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:mediarouter-v7:25.3.1'
umbau und gute Codierung
Wenn Sie nach der Implementierung aller unten genannten neuen Bibliotheken Probleme haben. Ich war vor dem gleichen Problem mit diesen 'com.Android.support:appcompat-v7:27.1.0'
-kompatiblen Versionen.
implementation 'com.Android.support:appcompat-v7:27.1.0'
implementation 'com.Android.support:design:27.1.0'
implementation 'com.Android.support:appcompat-v7:27.1.0'
implementation 'com.Android.support:mediarouter-v7:27.1.0'
implementation 'com.Android.support:recyclerview-v7:27.1.0'
implementation 'com.Android.support:cardview-v7:27.1.0'
implementation 'com.Android.support:support-v13:27.1.0'
implementation 'com.Android.support:support-v4:27.1.0'
Ich ersetze einfach das
'com.Android.support:appcompat-v7:27.1.0'
zu diesem
'com.Android.support:appcompat-v7:27.0.1'
fügen Sie diese in Abhängigkeiten auf App-Ebene hinzu
implementation 'com.Android.support:asynclayoutinflater:28.0.0'
implementation 'com.Android.support:exifinterface:28.0.0'
implementation 'com.Android.support:animated-vector-drawable:28.0.0'
implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.Android.support:support-v4:28.0.0'
Für mich habe ich den Fehler behoben, indem ich Folgendes hinzugefügt habe: compile 'com.Android.support:design:<version>'
Versuchen Sie, die Build-Tools genau dieselbe Version der Support-Bibliothek zu erstellen
beispiel
Android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.itechnologyeg.*******"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
dependencies {
compile 'com.Android.support:appcompat-v7:25.0.0'
compile 'com.Android.support:animated-vector-drawable:25.0.0'
compile 'com.Android.support:mediarouter-v7:25.0.0'
compile 'com.Android.support:recyclerview-v7:25.0.0'
compile 'com.Android.support:cardview-v7:25.0.0'
compile 'com.Android.support:design:25.0.0'
}
Eine andere Sache, die dieses Problem verursachen könnte, ist, wenn Sie folgende Deklarationen erhalten haben:
compile 'com.Android.support:support-v4:25.3.1'
compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:recyclerview-v7:+'
Dieser +
bedeutet, dass Sie die neueste Version verwenden, die möglicherweise eine neuere Version als der 25.3.1
ist. Ersetzen Sie +
durch eine bestimmte Version wie 25.3.1
wie folgt:
compile 'com.Android.support:support-v4:25.3.1'
compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:recyclerview-v7:25.3.1'
und es wird das Problem lösen
Das Problem kann mit der folgenden Methode gelöst werden:
AndroidManifest.xml
-Datei.Android:value
-Attribut in meta-data
geändert wird, können Sie diese Änderung vornehmen.build.gradle
-Datei enthalten.Kopieren Sie einfach die Version, die unter der aktuellen Version liegt, und fügen Sie sie explizit mit derselben Versionsnummer wie die aktuelle Version hinzu.
Beispiel
Gefundene Versionen 27.1.1, 27.1.0. Beispiele sind com.Android.support:animated-vector-drawable:27.1.1 und com.Android.support:exifinterface:27.1.0
Kopieren Sie einfach die Version com.Android.support:exifinterface:27.1.0
und ändern Sie sie in com.Android.support:exifinterface:27.1.1
, sodass sie der aktuellen Version entspricht, die Sie verwenden, und fügen Sie sie wie folgt Ihren Abstufungsabhängigkeiten hinzu.
implementation 'com.Android.support:exifinterface:27.1.1'
Hinweis: Wenn Sie fertig sind, vergessen Sie nicht, auf Sync now oben im Editor zu klicken.
Ich habe dieses Problem nach dem Upgrade auf Android Studio 3.4 und SDK-Version auf 28.0.0 konfrontiert. Das Anwenden der folgenden Abhängigkeit löste das Problem für mich.
implementation 'com.Android.support:exifinterface:28.0.0'
Alle com.Android.support-Bibliotheken müssen exakt dieselbe Versionsspezifikation verwenden (das Mischen von Versionen kann zu Laufzeitabstürzen führen). Gefundene Versionen 25.1.1, 24.0.0. Beispiele hierfür sind com.Android.support:animated-vector-drawable: 25.1.1 und com.Android.support:mediarouter-v7:24.0.0
Diese Warnung tritt normalerweise auf, wenn wir Google Play-Dienste verwenden, da Unterstützungsbibliotheken als Abhängigkeiten verwendet werden.
Die meisten von uns wussten nicht, dass wir die in Google Play Services verwendeten Unterstützungsbibliotheken außer Kraft setzen können . Wenn wir die folgende Abhängigkeit verwenden:
implementation "com.Android.support:animated-vector-drawable:25.1.1"
es hängt implizit von com.Android.support:mediarouter-v7:25.1.1
ab. Es besteht jedoch eine Kollision mit der Abhängigkeit des Google Play-Diensts, nämlich com.Android.support:mediarouter-v7:24.0.0
. Wir müssen es also überschreiben, indem wir die Bibliothek explizit mit:
implementation "com.Android.support:mediarouter-v7:25.1.1"
Dann enthält Ihr Abhängigkeitsblock beide wie folgt:
dependencies {
implementation "com.Android.support:animated-vector-drawable:25.1.1"
implementation "com.Android.support:mediarouter-v7:25.1.1"
...
}
Ich habe es geschafft (nicht sehr sauber) durch Hinzufügen
Ich musste die folgenden Zeilen in gradle hinzufügen, um den Fehler zu entfernen Dies hängt von der Version ab, die Sie mit appcompat verwenden
compile 'com.Android.support:appcompat-v7:26+'
compile 'com.Android.support:mediarouter-v7:26+'
Es ist ganz einfach, alle v7- und v4-Bibliotheken zu zwingen, die Bibliotheksversion zu verwenden, die Sie direkt vor Ihren Abhängigkeiten festgelegt haben.
configurations.all {
// To resolve the conflict for com.Android.databinding
// dependency on support-v4:21.0.3
resolutionStrategy.force 'com.Android.support:support-v4:28.0.0'
resolutionStrategy.force 'com.Android.support:support-v7:28.0.0'
}
Mein Problem ist gelöst Füge folgende letzte Abhängigkeit hinzuimplementation 'com.google.firebase:firebase-auth:16.0.4'
Nach ca. 5 Stunden funktionierte diese Lösung für mich.
Fügen Sie diese Zeile zuerst zu Ihrem Manifest-Tag hinzu, wenn Sie noch keine haben:
xmlns:tools="http://schemas.Android.com/tools"
Beispiel:
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.winanainc"
Android:versionCode="3"
Android:versionName="1.2"
xmlns:tools="http://schemas.Android.com/tools">
Fügen Sie dieses Meta-Tag dann in Ihre Anwendung ein, um die Build-Tool-Version zu überschreiben. In diesem Fall habe ich beispielsweise die Version 25.3.1 ausgewählt
<application>
...
..
<meta-data
tools:replace="Android:value"
Android:name="Android.support.VERSION"
Android:value="25.3.1" />
</application>
Fügen Sie einfach // noinspection GradleCompatible hinzu:
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
//noinspection GradleCompatible
implementation 'com.Android.support:appcompat-v7:28.0.0'
Es gibt nur einen Weg ... und Sie müssen es manuell tun ... Gehen Sie zu build.gradle check und weisen Sie alle Abhängigkeiten denselben Versionen zu ..
Dieser Fehler wegen Glide-Bibliothek. Probieren Sie Picasso oder andere Bildbibliotheken aus