Po aktualizacji do Androida Studio 2.3 otrzymałem ten komunikat o błędzie. Wiem, że to tylko wskazówka, ponieważ aplikacja działa normalnie, ale jest naprawdę dziwna.
Wszystkie biblioteki com.android.support muszą używać dokładnie tej samej specyfikacji wersji (mieszanie wersji może prowadzić do awarii środowiska wykonawczego). Znaleziono wersje 25.1.1, 24.0.0. Przykłady obejmują com.android.support:animated-vector-drawable:25.1.1 i com.android.support:mediarouter-v7:24.0.0
moja ocena:
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
źródło
źródło
Odpowiedzi:
Możesz to rozwiązać za pomocą jednego z następujących rozwiązań:
Aktualizacja:
Począwszy od Androida Studio 3.0, staje się znacznie łatwiejsze, ponieważ teraz wyświetla bardziej pomocną wskazówkę, więc musimy tylko postępować zgodnie z tą wskazówką.
na przykład:
Rozwiązanie:
Dodaj jawnie bibliotekę ze starą wersją, ale z nowym numerem wersji.
w moim przypadku
com.android.support:customtabs:26.1.0
muszę dodać:tj .: Weź bibliotekę z drugiego elementu i zaimplementuj ją z numerem wersji od pierwszego.
Uwaga: nie zapomnij nacisnąć teraz synchronizacji, aby gradle mógł odbudować wykres zależności i sprawdzić, czy są jeszcze jakieś konflikty.
Objaśnienie:
komunikat o błędzie może być zdezorientowany, ponieważ nie używaj,
customtabs
więc mam konflikt !!cóż ... nie użyłeś go bezpośrednio, ale jedna z bibliotek używa starej wersji
customtabs
wewnętrznego, więc musisz poprosić o to bezpośrednio.jeśli chcesz się dowiedzieć, która z bibliotek jest odpowiedzialna za starą wersję i może poprosić autora o aktualizację swojej biblioteki, uruchom raport zależności Gradle, zobacz starą odpowiedź, aby dowiedzieć się, jak to zrobić.
Zauważ to
Stara odpowiedź:
inspirowane odpowiedzią CommonsWare :
Uruchom raport zależności Gradle, aby zobaczyć pełne drzewo zależności.
Stamtąd zobaczysz, która z bibliotek prosi o inną wersję bibliotek obsługi systemu Android. Bez względu na to, o co prosi, możesz poprosić o to bezpośrednio w wersji 25.2.0 lub użyć innych metod rozwiązywania konfliktów Gradle, aby uzyskać te same wersje.
Aktualizacja:
Od wersji wtyczki gradle: 3.0
compile
został zastąpiony przezimplementation
lubapi
zobacz tę odpowiedź dla różnicy.dlatego użyj zamiast tego:
lub dla Windows cmd:
i wyszukaj wersję będącą w konflikcie.
Dla mnie błąd zniknął po usunięciu
com.google.android.gms:play-services:10.2.0
I tylko obejmują
com.google.android.gms:play-services-location:10.2.0
icom.google.android.gms:play-services-maps:10.2.0
ponieważ są to jedyne dwie usługi gry, z których korzystam.Myślę, że
gms:play-services
zależą od niektórych starych składników biblioteki wsparcia, więc musimy je dodać osobiście.dla AS 3.0 i starszych.
Biegać:
Przykład:
jeśli ktoś zna lepszy sposób w nowej wtyczce gradle, daj mi znać.
źródło
com.google.android.gms:play-services:10.2.0
obsługuje SDK 14 i wyżej, jeśli chcesz używać poniżej SDK 14, musisz użyć wersji,10.0.1
jak wspomniano w stackoverflow.com/a/42315590/6248491examples include
tekst w komunikacie o błędzie pokazuje rzeczywiste przykłady z twojego projektu, a nie niejasne ogólne przykłady rodzaju problemu. Weź bibliotekę z drugiego elementu i zaimplementuj ją z numerem wersji od pierwszego.project/.idea/libraries
folderu w systemie plików i sprawdź, które biblioteki są inne.build.gradle
pliku.Na przykład:
źródło
We wszystkich przypadkach, nie tylko dla tych wersji lub bibliotek:
Zwróć uwagę na małe okno informacyjne, które mówi coś o błędzie, zawiera przykłady, które musisz zmienić i dodać .
W tym przypadku:
Twój
jest wersja 25.1.1 i twoja
jest wersja 24.0.0 , więc musisz dodać mediarouter z tą samą wersją:
I zrób to dla każdego przykładu, który mówi małe okno informacyjne, w tym przypadku wszystkich bibliotek, które nie mają wersji 25.1.1.
Musisz zsynchronizować grad po naprawieniu wskazanej biblioteki, aby zobaczyć następną bibliotekę i pakiet, który musisz zmienić.
WAŻNY:
Jeśli nie używasz jednoznacznie jednej lub więcej określonych bibliotek i pojawia się błąd, oznacza to, że jest używana wewnętrznie przez inną bibliotekę, i tak skompiluj ją jawnie.
Możesz także użyć innej metody, aby zobaczyć różnicę wersji wszystkich bibliotek, które faktycznie kompilujesz (np. Uruchom raport zależności lub przejdź do plików bibliotek), prawdziwym celem jest skompilowanie wszystkich bibliotek, których używasz ta sama wersja .
źródło
support:mediarouter
dokładnie robi?Najlepszym sposobem rozwiązania tego problemu jest wdrożenie wszystkich „com.android.support: ...” sugerowanych przez Android Studio
(Nie ma znaczenia, z których wersji wsparcia korzystasz - 27.1.1, 28.0.0 itp.)
Ustaw kursor na linii błędu, np
Android Studio zasugeruje, która „com.android.support: ...” jest inną wersją niż „com.android.support:appcompat-v7:28.0.0”
Przykład
Więc dodaj
com.android.support:animated-vector-drawable:28.0.0
&com.android.support:exifinterface:28.0.0
. Teraz zsynchronizuj plik stopni.Jedna po drugiej spróbuj zaimplementować wszystkie sugerowane „com.android.support: ...”, dopóki w tym wierszu nie wystąpi błąd
implementation 'com.android.support:appcompat-v7:28.0.0'
W moim przypadku dodałem
Wszystkie te zależności mogą być dla Ciebie inne.
źródło
Dodaj to na samym końcu swojego build.gradle (moduł: aplikacja):
Upewnij się, że zamieniłeś '25 .3.1 'na wersję biblioteki wsparcia Androida, której chcesz używać dla wszystkich zależności, nie powinna być niższa niż twoja kompatybilna wersja sdk
niż ponownie zsynchronizować stopień
źródło
Miałem dokładnie ten sam problem po aktualizacji do Androida Studio 2.3
Dodanie tej linii do zależności rozwiązało mój problem:
źródło
renderscriptSupportModeEnabled false
na false. Dodano kompilację'com.android.support:customtabs:25.2.0'
i błąd zniknął.A) Uruchom
gradle dependencies
lub./gradlew dependencies
B) Spójrz na swoje drzewo i dowiedz się, która z twoich zależności określa inną wersję biblioteki wsparcia dla zależności, której nie kontrolujesz.
Nie zdawałem sobie sprawy, że to ostrzeżenie wyświetla się również, jeśli zależność nie jest całkowicie wykorzystywana bezpośrednio przez własny kod. W moim przypadku Facebook określa niektóre biblioteki wsparcia, których nie używałem. Poniżej widać, że większość tych zależności została zastąpiona przez moją własną specyfikację 25.2.0, oznaczoną symbolami -> XXX (*) . Widok karty i niestandardowe biblioteki zakładek nie zostały przez nikogo przesłonięte, więc sam muszę poprosić o wydanie 25.2.0, nawet jeśli ich nie używam.
Jeśli grad już cię ostrzegł i podał przykłady ...
... jest jeszcze łatwiej, jeśli dodasz wyróżnienie grep dla niższej wersji, ponieważ
gradle dependencies
może być dość szczegółowe:źródło
Użyj zmiennych : Wykonanie czegoś takiego, jak poniżej, ułatwi ci korzystanie z tej samej wersji we wszystkich bibliotekach
Więcej informacji o tym, jak Google sugeruje obsługę tej wersji, można znaleźć w tym artykule: https://developer.android.com/studio/build/index.html#top-level
źródło
po prostu dodaj to:
Updated
dla nowych wersji SDKźródło
Jeśli ten sam błąd jest włączony
appcompat
następnie dodanie
design
rozwiązało to.Dla mnie dodawanie
obejmował
appcompat-v7:23.1.1
wbez
vlc
,appcompat
sam wystarczy.źródło
Jak już widzieliście wszystkie odpowiedzi i komentarze powyżej, ta odpowiedź ma na celu usunięcie czegoś, czego nowy programista może nie uzyskać łatwo.
./gradlew -q aplikacja zależności: zależności - kompilacja konfiguracji
Powyższa linia uratuje Ci życie bez wątpienia, ale jak uzyskać dokładny punkt z wyniku powyższej linii.
Gdy otrzymasz powyższą tabelę lub listę wszystkich zależności z powyższego polecenia, musisz przeszukać sprzeczny numer wersji, który otrzymujesz w kodzie. zobacz poniższy obrazek.
na powyższym obrazku widać, że problem 23.4.0 stwarza problem, ale nie możemy tego znaleźć w naszym pliku ocen. Więc teraz ten numer wersji (23.4.0) nas uratuje. Kiedy otrzymamy ten numer, znajdziemy go w wyniku powyższego wyniku polecenia i bezpośrednio zaimportujemy tę zależność bezpośrednio w naszym pliku ocen. Zobacz poniższy obraz, aby uzyskać wyraźny widok.
widać wyraźnie, że com.android.support:cardview-v7:23.4.0 i com.android.support:customtabs:23.4.0 używają wersji, która powoduje problem. Teraz wystarczy skopiować te linie z listy zależności i jawnie użyć ich w naszym pliku gradle, ale z linkiem do zaktualizowanej wersji
implementacja „com.android.support:cardview-v7:26.1.0” implementacja „com.android.support:customtabs:26.1.0”
źródło
Innym sposobem rozwiązywania konfliktów jest po prostu wymuszenie poprawnej wersji dla wszystkich zależności, takich jak to:
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
źródło
Użyj support-v13 zamiast support-v4
źródło
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'
dodaj je w zależnościach na poziomie aplikacji
źródło
Mój problem jest podobny do twojego. Oto błąd!
compile 'com.android.support:appcompat-v7:25.3.0'
Wszystkie biblioteki com.android.support muszą używać dokładnie tej samej specyfikacji wersji (mieszanie wersji może prowadzić do awarii środowiska wykonawczego). Znaleziono wersje 25.3.0, 24.0.0. Przykłady obejmują „com.android.support:animated-vector-drawable:25.3.0” i „com.android.support:mediarouter-v7:24.0.0”
Przykłady obejmują: „com.android.support:animated-vector-drawable:25.3.0” i „com.android.support:mediarouter-v7:24.0.0”
po prostu dodaj te kody w zależnościach, upewnij się, że wersje są takie same.
źródło
Ten sam błąd wystąpił po dodaniu
compile 'com.google.android.gms:play-services:10.2.4'
z kompilacją'com.android.support:appcompat-v7:25.3.1'
.Dodanie
animated-vector-drawable
imediarouter libs
naprawienie problemu.źródło
Miałem to:
i dostałem ten błąd:
Rozwiązania były proste - wszystkie podstawowe zależności były prawidłowe, więc pozostawia - wszelkie zależności stron trzecich. Usuwano jeden po drugim, aż znalazłem winowajcę, i okazało się, że jest na Facebooku! używa wersji 27.0.2 bibliotek obsługi Androida. Próbowałem dodać wersję 27.1.1 Cardview, ale to też nie zadziałało, a rozwiązanie nadal było dość proste.
źródło
Napotkałem ten problem po aktualizacji do Androida Studio 3.4 i wersji SDK do 28.0.0. Zastosowanie poniższej zależności rozwiązało dla mnie problem.
źródło
Użyłem tych dwóch, aby rozwiązać problem po aktualizacji do Androida Studio 2.3
źródło
Miałem wcześniej ten sam problem i znalazłem rozwiązanie.
Właśnie dodałem biblioteki, które miały inną wersję, ale z tą samą wersją
support:appcompat
.Na przykład twój błąd:
* Rozwiązaniem jest takie skompilowanie wersji tych bibliotek:
compile 'com.android.support:mediarouter-v7:25.1.1'
- jeśli inna biblioteka miała ten sam problem i inna wersja po prostu go skompilowała z twoją
support:appcompat
wersjąTo rozwiązało mój problem i mam nadzieję, że rozwiąże twój.
Wszystkiego najlepszego :)
źródło
Po wyszukaniu i połączeniu odpowiedzi, to pytanie w wersji 2018 zadziałało dla mnie:
1) Na karcie nawigacji zmień go na widok projektu
2) Przejdź do [YourProjectName] /. Idea / libraries /
3) Usuń wszystkie pliki zaczynające się od Gradle__com_android_support_ [nazwa_biblioteki]
Np .: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml
4) W pliku ocen zdefiniuj zmienną i użyj jej do zastąpienia numeru wersji, np. $ { ZmiennaNazwa }
Zmienna Def:
Użyj zmiennej:
przykładowa klasa:
źródło
Bardzo proste dzięki nowej wersji Androida Studio 3.x.
Po prostu skopiuj wersję, która jest mniejsza niż bieżąca wersja i dodaj ją jawnie z tym samym numerem wersji co bieżąca wersja.
Przykład
Po prostu skopiuj wersję
com.android.support:exifinterface:27.1.0
i zmień jącom.android.support:exifinterface:27.1.1
tak, aby stała się równa bieżącej wersji, której używasz, i dodaj ją do zależności między stopniami w następujący sposób.Uwaga: gdy skończysz, nie zapomnij kliknąć Synchronizuj teraz u góry edytora.
źródło
w aktualizacji 2018 dla tego błędu dodaj implementację ze struktury projektu
w trybie projektu -> Biblioteki zewnętrzne tam możesz znaleźć swój problem, w moim przypadku używam wersji 28 i bibliotek zewnętrznych, które znalazłem
com.android.support:support-media-compat-26.0.0
i tutaj był błąd.po wdrożeniu
support v13
i działaźródło
Zdefiniowano inną zależność do kompilacji z wersją
24.0.0
zamiast25.1.1
. Proszę ustawić wszystkie wersje zależności tak samo jak25.1.1
.źródło
Musiałem dodać następujące wiersze w gradiencie, aby usunąć błąd
źródło
Uruchomiłem zadania ./gradlew - wszystkie i sprawdziłem zależności, które były inne niż wersja docelowa (25.3.1). Otrzymasz coś takiego:
W tym przypadku celowałem w 25.3.1 i miałem pewne zależności dotyczące różnych wersji, kiedy uruchomiłem to polecenie. Sztuką jest zidentyfikowanie zależności na tej liście, które są kierowane na poprzednie wersje, i przesłonięcie ich poprzez zaimportowanie najnowszej wersji zależności w Gradle.
źródło
Mam ten sam problem, ale rozwiązałem ten problem, dodając te trzy linie
teraz wszystko działa idealnie
źródło
Oto mój sposób na naprawienie tego ostrzeżenia
build.gradle
Aby wyświetlić / zweryfikować
dependencies
całą bibliotekę w aplikacjiOtwórz terminal i uruchom
./gradlew app:dependencies
Aby wyświetlić
dependencies
konkretną bibliotekę w aplikacji, wykonaj samouczek tutaj: - Jak wykluczyć zależności określonej zależności w programie GradleMam nadzieję, że to pomoże
źródło
Otwórz bibliotekę zewnętrzną swojego projektu, a zobaczysz, że niektóre biblioteki nadal używają poprzedniej wersji, chociaż nie wspomniałeś o tych bibliotekach, więc moja sugestia to po prostu użycie konkretnej wersji biblioteki dla tych, które rozwiążą twój problem.
źródło
Właśnie aktualizuję moje repozytorium obsługi Androida do (wersja: 44.0.0); następnie narzędzia Android SDK i emulator do najnowszej wersji 25.3.1 z sdk manager> narzędzia SDK I to rozwiązało mój problem.
źródło