Nach dem Update auf Android Studio 2.3 habe ich diese Fehlermeldung erhalten. Ich weiß, es ist nur ein Hinweis, da die App normal läuft, aber es ist wirklich seltsam.
Alle com.android.support-Bibliotheken müssen genau dieselbe Versionsspezifikation verwenden (das Mischen von Versionen kann zu Laufzeitabstürzen führen). 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
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:2.8.2@aar'
compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
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'
}
android
build.gradle
humazed
quelle
quelle
Antworten:
Sie können dies mit einer der folgenden Lösungen lösen:
Aktualisieren:
Ab Android Studio 3.0 wird es viel einfacher, da jetzt ein hilfreicherer Hinweis angezeigt wird, sodass wir nur diesem Hinweis folgen müssen.
zum Beispiel:
Lösung:
Fügen Sie die Bibliothek explizit mit der alten Version, jedoch mit einer neuen Versionsnummer hinzu.
In meinem Fall muss
com.android.support:customtabs:26.1.0
ich also hinzufügen: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 "Synchronisieren" zu klicken, damit gradle das Abhängigkeitsdiagramm neu erstellen und prüfen kann, ob weitere Konflikte vorliegen.
Erläuterung:
Sie können durch die Fehlermeldung verwirrt sein, da Sie nicht verwenden
customtabs
, wie ich einen Konflikt habe !!Nun, Sie haben es nicht direkt verwendet, aber eine Ihrer Bibliotheken verwendet
customtabs
intern eine alte Version von. Sie müssen also direkt danach fragen.Wenn Sie neugierig sind, welche Ihrer Bibliotheken für die alte Version verantwortlich ist, und den Autor möglicherweise bitten, seine Bibliothek zu aktualisieren, einen Gradle-Abhängigkeitsbericht ausführen, lesen Sie die alte Antwort, um zu erfahren, wie.
Beachten Sie dies
Alte Antwort:
inspiriert von CommonsWare Antwort :
Führen Sie einen Gradle-Abhängigkeitsbericht aus, um zu sehen, wie Ihr vollständiger Abhängigkeitsbaum aussieht.
Von dort aus sehen Sie, welche Ihrer Bibliotheken nach einer anderen Version der Android-Support-Bibliotheken fragen. Für alles, was es verlangt, können Sie es direkt mit der 25.2.0-Version anfordern oder Gradles andere Ansätze zur Konfliktlösung verwenden, um dieselben Versionen zu erhalten.
Aktualisieren:
Ab Gradle Plugin Version: 3.0
compile
wurde durch ersetztimplementation
oderapi
siehe diese Antwort für den Unterschied.Verwenden Sie daher stattdessen:
oder für Windows cmd:
und suchen Sie nach der Konfliktversion.
Für mich verschwand der Fehler nach dem Entfernen
com.google.android.gms:play-services:10.2.0
Und nur einschließen
com.google.android.gms:play-services-location:10.2.0
undcom.google.android.gms:play-services-maps:10.2.0
da sie die einzigen zwei Spieldienste sind, die ich benutze.Ich denke, das
gms:play-services
hängt von einigen alten Komponenten der Support-Bibliothek ab, daher müssen wir sie explizit selbst hinzufügen.für AS 3.0 ein älteres.
Lauf:
Beispiel:
Wenn jemand einen besseren Weg im neuen Gradle-Plugin kennt, lass es mich wissen.
quelle
com.google.android.gms:play-services:10.2.0
unterstützt SDK 14 und höher. Wenn Sie SDK 14 verwenden möchten, müssen Sie die Version verwenden10.0.1
, die unter stackoverflow.com/a/42315590/6248491examples include
Text in der Fehlermeldung tatsächliche Beispiele aus Ihrem eigenen Projekt enthält, keine vagen allgemeinen Beispiele für die Art des Problems. Nehmen Sie die Bibliothek aus dem zweiten Element und implementieren Sie sie mit der Versionsnummer aus dem ersten.project/.idea/libraries
Ordner in Ihrem Dateisystem und sehen Sie, welche Bibliotheken unterschiedlich sind.build.gradle
Datei aufnehmen.Z.B:
quelle
Für alle Fälle, nicht nur für diese Versionen oder Bibliotheken:
Achten Sie auf das kleine Informationsfenster, das etwas über den Fehler aussagt. Es enthält die Beispiele, die Sie ändern und hinzufügen müssen .
In diesem Fall:
Ihre
ist Version 25.1.1 und Ihre
ist Version 24.0.0 , daher müssen Sie den Mediarouter mit derselben Version hinzufügen:
Und das für jedes Beispiel, das im kleinen Informationsfenster steht, in diesem Fall für alle Bibliotheken, die nicht über die Version 25.1.1 verfügen.
Sie müssen den 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:
Wenn Sie eine oder mehrere angegebene Bibliotheken nicht explizit verwenden und der Fehler angezeigt wird, bedeutet dies, dass sie intern von einer anderen Bibliothek verwendet werden. Kompilieren Sie sie trotzdem explizit.
Sie können auch eine andere Methode verwenden, um den Unterschied zwischen den Versionen aller Bibliotheken zu ermitteln, die Sie tatsächlich kompilieren (z. B. einen Gradle-Abhängigkeitsbericht ausführen oder zu Ihren Bibliotheksdateien wechseln ). Das eigentliche Ziel besteht darin, alle Bibliotheken zu kompilieren, mit denen Sie arbeiten die gleiche Version .
quelle
support:mediarouter
genau funktioniert?Der beste Weg, um das Problem zu lösen, ist die Implementierung aller von Android Studio vorgeschlagenen "com.android.support: ..."
(Egal welche Support-Versionen Sie verwenden - 27.1.1, 28.0.0 usw.)
Setzen Sie den Cursor auf die Fehlerzeile, z
Android Studio schlägt Ihnen vor, welche 'com.android.support: ...' eine andere Version als 'com.android.support:appcompat-v7:28.0.0' ist.
Beispiel
Also füge
com.android.support:animated-vector-drawable:28.0.0
& hinzucom.android.support:exifinterface:28.0.0
. Synchronisieren Sie nun die Gradle-Datei.Versuchen Sie nacheinander, alle vorgeschlagenen "com.android.support: ..." zu implementieren, bis in dieser Zeile kein Fehler mehr vorliegt
implementation 'com.android.support:appcompat-v7:28.0.0'
In meinem Fall habe ich hinzugefügt
All diese Abhängigkeiten könnten für Sie anders sein.
quelle
Fügen Sie dies ganz am Ende Ihres build.gradle hinzu (Modul: App):
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. Sie sollte nicht niedriger sein als Ihre kompatible SDK-Version
als Gradle erneut synchronisieren
quelle
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:
quelle
renderscriptSupportModeEnabled false
dies auf false. Und das Hinzufügen von Kompilieren'com.android.support:customtabs:25.2.0'
und Fehlern ging weg.A) Ausführen
gradle dependencies
oder./gradlew dependencies
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.
Ich habe nicht bemerkt, dass diese Warnung auch angezeigt wird, wenn die Abhängigkeit direkt von Ihrem eigenen Code nicht vollständig verwendet wird. In meinem Fall gibt Facebook einige Unterstützungsbibliotheken an, die ich nicht verwendet habe. Sie können unten sehen, dass die meisten dieser Abhängigkeiten durch meine eigene Spezifikation von 25.2.0 überschrieben wurden, die durch die Symbole -> XXX (*) gekennzeichnet ist . Die Kartenansicht und die benutzerdefinierten Registerkartenbibliotheken wurden von niemandem überschrieben, daher muss ich für diese selbst nach 25.2.0 fragen, obwohl ich sie nicht verwende.
Wenn gradle Sie bereits gewarnt und Ihnen Beispiele gegeben hat ...
... es ist noch einfacher, wenn Sie einige grep-Hervorhebungen für die niedrigere Version
gradle dependencies
einfügen, da dies ziemlich ausführlich sein kann:quelle
Variablen verwenden : Wenn Sie Folgendes tun, können Sie leichter sicherstellen, dass Sie für alle Bibliotheken dieselbe Version verwenden
Weitere Informationen darüber, wie Google vorschlägt, mit dieser Versionierung umzugehen, finden Sie in diesem Artikel: https://developer.android.com/studio/build/index.html#top-level
quelle
füge einfach Folgendes hinzu:
Updated
für neue SDK-Versionenquelle
Wenn der gleiche Fehler aktiviert ist
appcompat
dann das Hinzufügen
design
löste es.Für mich hinzufügen
war
appcompat-v7:23.1.1
inohne
vlc
,appcompat
allein ist genug.quelle
Wie Sie bereits alle Antworten und Kommentare oben gesehen haben, dient diese Antwort dazu, etwas zu löschen, das ein neuer Entwickler möglicherweise nicht leicht bekommt.
./gradlew -q Abhängigkeiten App: Abhängigkeiten --Konfiguration kompilieren
Die obige Linie wird ohne Zweifel Ihr Leben retten, aber wie Sie den genauen Punkt aus dem Ergebnis der obigen Linie erhalten.
Wenn Sie das Diagramm oder die Liste aller Abhängigkeiten aus dem obigen Befehl erhalten, müssen Sie die widersprüchliche Versionsnummer suchen, die Sie in Ihrem Code erhalten. Bitte sehen Sie das Bild unten.
Im obigen Bild sehen Sie, dass 23.4.0 das Problem verursacht, das wir jedoch in unserer Gradle-Datei nicht finden können. Diese Versionsnummer (23.4.0) wird uns jetzt 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 das Bild unten, um die 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. Kopieren Sie jetzt einfach diese Zeile aus der 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"
quelle
Eine andere Möglichkeit, Konflikte zu lösen, besteht darin, die richtige Version für alle Abhängigkeiten wie diese zu erzwingen:
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
quelle
Verwenden Sie support-v13 anstelle von support-v4
quelle
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:support-v13:25.2.0'
compile 'com.android.support:recyclerview-v7:25.2.0'
Fügen Sie diese in Abhängigkeiten auf App-Ebene hinzu
quelle
Mein Problem ist ähnlich wie deins. Hier liegt ein Fehler vor!
compile 'com.android.support:appcompat-v7:25.3.0'
Alle com.android.support-Bibliotheken müssen genau 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'.
Beispiele hierfür sind "com.android.support:animated-vector-drawable:25.3.0" und "com.android.support:mediarouter-v7:24.0.0".
Wenn Sie diese Codes nur in Abhängigkeiten hinzufügen, stellen Sie sicher, dass die Versionen identisch sind.
quelle
Ich habe den gleichen Fehler nach dem Hinzufügen
compile 'com.google.android.gms:play-services:10.2.4'
mit compile erhalten'com.android.support:appcompat-v7:25.3.1'
.Das Problem wurde hinzugefügt
animated-vector-drawable
undmediarouter libs
behoben.quelle
Ich hatte das:
und habe diesen Fehler bekommen:
Die Lösungen waren einfach - die primären Abhängigkeiten waren alle korrekt, so dass die Blätter jedoch - Abhängigkeiten von Drittanbietern. Eins nach dem anderen entfernt, bis der Täter gefunden wurde, und sich als Facebook herausstellt! Es verwendet die Version 27.0.2 der Android-Support-Bibliotheken. Ich habe versucht, die Cardview-Version 27.1.1 hinzuzufügen, aber das hat nicht funktioniert, obwohl die Lösung immer noch einfach genug war.
quelle
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.
quelle
Ich habe diese beiden verwendet, um mein Problem nach dem Upgrade auf Android Studio 2.3 zu lösen
quelle
Ich hatte vorher das gleiche Problem und bekam die Lösung dafür.
Ich habe gerade die Bibliotheken hinzugefügt, die eine andere Version hatten, aber dieselbe Version von mir
support:appcompat
.Für Ihren Fehler zum Beispiel:
* 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 hatte, kompilieren Sie es einfach mit Ihrer
support:appcompat
VersionDies hat mein Problem gelöst und ich hoffe, es löst Ihr Problem.
Die besten Wünsche :)
quelle
Nach dem Suchen und Kombinieren von Antworten hat die Version 2018 dieser Frage für mich funktioniert:
1) Ändern Sie es auf der Registerkarte Navigation in die Projektansicht
2) Navigieren Sie zu [YourProjectName] /. Idea / library /
3) Löschen Sie alle Dateien, die mit Gradle__com_android_support_ [libraryName] beginnen.
Beispiel: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml
4) Definieren Sie in Ihrer Gradle-Datei eine Variable und ersetzen Sie damit die Versionsnummer wie $ {variableName}
Def Variable:
Variable verwenden:
Beispiel gradle:
quelle
Sehr einfach mit der neuen Version des Android Studio 3.x.
Kopieren Sie einfach die Version, die kleiner als die aktuelle Version ist, und fügen Sie sie explizit mit derselben Versionsnummer wie die aktuelle Version hinzu.
Beispiel
Kopieren Sie einfach die Version
com.android.support:exifinterface:27.1.0
und ändern Sie siecom.android.support:exifinterface:27.1.1
so, dass sie der aktuell verwendeten Version entspricht, und fügen Sie sie wie folgt zu Ihren Gradle-Abhängigkeiten hinzu.Hinweis: Wenn Sie fertig sind, vergessen Sie nicht, oben im Editor auf Jetzt synchronisieren zu klicken .
quelle
im Jahr 2018 Update für diesen Fehler Implementierung aus Projektstruktur hinzufügen
Im Projektmodus -> Externe Bibliotheken finden Sie dort Ihr Problem. In meinem Fall verwende ich Version 28 und externe Bibliotheken, die ich gefunden habe,
com.android.support:support-media-compat-26.0.0
und hier war der Fehler.nach der Implementierung
support v13
und es funktioniertquelle
Sie haben eine andere Abhängigkeit definiert mit Version zu kompilieren
24.0.0
statt25.1.1
. Bitte stellen Sie alle Abhängigkeiten auf die gleiche Weise ein wie25.1.1
.quelle
Ich musste die folgenden Zeilen in Gradle hinzufügen, um den Fehler zu beheben
quelle
Ich habe ./gradlew-Tasks --all ausgeführt und nach Abhängigkeiten gesucht, die eine andere Version als die Zielversion (25.3.1) hatten. Sie werden so etwas bekommen:
In diesem Fall war ich auf 25.3.1 ausgerichtet und hatte einige Abhängigkeiten, die auf verschiedene Versionen abzielten, als ich diesen Befehl ausführte. 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.
quelle
Ich habe das gleiche Problem, aber ich habe es gelöst, indem ich diese drei Zeilen hinzugefügt habe
Jetzt funktioniert alles perfekt
quelle
Hier ist mein Ablauf, um diese Warnung zu beheben
build.gradle
So zeigen Sie
dependencies
alle Bibliotheken in Ihrer App an / überprüfen sieÖffnen Sie das Terminal und führen Sie es aus
./gradlew app:dependencies
Um das
dependencies
einer bestimmten Bibliothek in Ihrer App anzuzeigen, folgen Sie dem Tutorial hier: - So schließen Sie Abhängigkeiten einer bestimmten Abhängigkeit in Gradle ausHoffe es hilft
quelle
Wenn Sie die externe Bibliothek Ihres Projekts öffnen, werden Sie feststellen, dass einige Bibliotheken noch die vorherige Version verwenden, obwohl Sie diese Bibliothek nicht erwähnt haben. Mein Vorschlag ist daher, nur die bestimmte Bibliotheksversion für diejenigen zu verwenden, die Ihr Problem lösen.
quelle
Ich aktualisiere gerade mein Android Support Repository auf (Revision: 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.
quelle