Tüm com.android.support kitaplıkları aynı sürüm belirtimini kullanmalıdır


788

Android studio 2.3'e güncelledikten sonra bu hata mesajını aldım. Uygulama normal çalıştığında bir ipucu olduğunu biliyorum ama gerçekten garip.

Tüm com.android.support kitaplıkları aynı sürüm belirtimini kullanmalıdır (karıştırma sürümleri çalışma zamanı çökmelerine neden olabilir). Bulunan sürümler 25.1.1, 24.0.0. Örnek olarak com.android.support:animated-vector-drawable:25.1.1 ve com.android.support:mediarouter-v7:24.0.0 verilebilir

resim açıklamasını buraya girin

benim derecem:

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'
}

bunu projectBuild.Gradle alt projelerine ekleyin {project.configurations.all {ResolutionStrategy.eachDependency {details -> if (details.requested.group == 'com.android.support' &&! details.requested.name.contains ('multidex ')) {details.useVersion "26. +"}}}}
Sunil Chaudhary

Yanıtlar:


906

Bunu aşağıdaki çözümlerden biriyle çözebilirsiniz:

Güncelleme:

Android studio 3.0'dan itibaren, şimdi daha yararlı bir ipucu gösterdiğinden çok daha kolay hale geliyor, bu yüzden sadece bu ipucunu izlememiz gerekiyor.
Örneğin: 1]

Tüm com.android.support kitaplıkları aynı sürüm belirtimini kullanmalıdır (karıştırma sürümleri çalışma zamanı çökmelerine neden olabilir). Bulunan sürümler 27.0.2, 26.1.0. Örnek olarak com.android.support:animated-vector-drawable:27.0.2 ve com.android.support:customtabs:26.1.0 verilebilir.

uyumsuz olan veya hatalara yol açabilecek bazı kütüphane kombinasyonları, araçlar ve kütüphaneler vardır. Böyle bir uyumsuzluk, Android destek kitaplıklarının en son sürüm olmayan (veya özellikle targetSdkVersion'dan daha düşük bir sürüm) sürümüyle derlemektir.

Çözüm:
Kitaplığı eski sürümüyle, ancak yeni sürüm numarasıyla açıkça ekleyin.
benim durumda com.android.support:customtabs:26.1.0bu yüzden eklemeniz gerekir:

implementation "com.android.support:customtabs:27.0.2"  

ie: Kütüphaneyi ikinci öğeden alın ve ilkinden sürüm numarasıyla uygulayın.

Not: Derecenin bağımlılık grafiğini yeniden oluşturabilmesi ve daha fazla çakışma olup olmadığını görmek için senkronizasyona şimdi basmayı unutmayın.

Açıklama: nasıl bir çatışma var bu yüzden
kullanmayın gibi hata mesajı ile karışık olabilir customtabs!
doğrudan kullanmadınız, ancak kütüphanelerinizden biri customtabsdahili olarak eski bir sürümünü kullanıyor , bu yüzden doğrudan sormanız gerekiyor.

kitaplıklarınızdan hangisinin eski sürümden sorumlu olduğunu merak ediyorsanız ve belki yazardan lib'ini güncellemesini isteyin, Bir Gradle bağımlılık raporu çalıştırın, nasıl olduğunu öğrenmek için eski cevaba bakın.

Bunu not et


Eski cevap:

CommonsWare yanıtından esinlenerek :

Tam bağımlılık ağacınızın ne olduğunu görmek için Gradle bağımlılık raporu çalıştırın.

Oradan, kitaplıklarınızdan hangisinin Android Destek kitaplıklarının farklı bir sürümünü istediğini göreceksiniz. Ne isterse onu doğrudan 25.2.0 sürümü ile isteyebilir veya aynı sürümleri elde etmek için Gradle'ın diğer çatışma çözümü yaklaşımlarını kullanabilirsiniz.


Güncelleme:

Gradle plugin versiyonundan itibaren: 3.0 compileyerini almıştır implementationveya fark için bu cevabaapi bakınız .

dolayısıyla bunun yerine kullanın:

./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

veya windows cmd için:

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

ve çakışan sürümü arayın.

Benim için hata kaldırıldıktan sonra kayboldu com.google.android.gms:play-services:10.2.0

Ve sadece dahil com.google.android.gms:play-services-location:10.2.0ve com.google.android.gms:play-services-maps:10.2.0kullandığım sadece iki oyun servisi oldukları için.

gms:play-servicesDestek kütüphanesinin bazı eski bileşenlerine bağımlı olduğunu düşünüyorum , bu yüzden bunları açıkça kendimiz eklememiz gerekiyor.


AS 3.0 için daha eski.

Çalıştırmak:

./gradlew -q dependencies <module-name>:dependencies --configuration implementation

Misal:

./gradlew -q dependencies app:dependencies --configuration implementation

birisi yeni gradle eklentisinde daha iyi bir yol biliyorsa lütfen bana bildirin.


3
com.google.android.gms:play-services:10.2.0SDK 14 ve üstünü destekler, SDK 14'ün altında kullanmak istiyorsanız 10.0.1, stackoverflow.com/a/42315590/6248491
Sneh Pandya

2
@humazed noob sorusu, Android Studio'da komutu nerede çalıştırabilirim?
Haikal Nashuha

1
terminalde, ama önce, oyun hizmetleri şeyi denemeye çalışın
Mart'ta

1
Bunun delilik olduğunu düşünen tek kişi ben miyim? Sadece admob ve facebook istiyorum ve birlikte çalışmayı reddediyorlar ....
Jay

3
examples includeHata mesajındaki metnin, problem türünün genel örneklerini değil, kendi projenizden gerçek örnekleri gösterdiğini belirtmek yararlı olabilir . Kütüphaneyi ikinci öğeden alın ve ilkinden sürüm numarasıyla uygulayın.
Benjamin Kershner

203
  1. project/.idea/librariesDosya sisteminizdeki klasöre gidin ve hangi kitaplıkların farklı olduğunu görün.
  2. build.gradleDosyanıza aynı sürümle bu kütüphaneleri manuel olarak eklemeniz gerekir .
  3. Ardından, projenizi senkronize edin.

Örneğin:

compile 'com.android.support:appcompat-v7:25.2.0'

// Wrong library version found on 1st point
compile 'com.android.support:customtabs:25.2.0'

İyi bir nokta. Hangisinin aslında yanlış olduğunu hiç düşünmedim. : S Teşekkürler!
Tobias Reich


10
/ Proje Dosyaları / Projem / .idea / kütüphanelerinde farklı sürümlerde birden fazla destek dosyası vardır. Şimdi bunu hangi modül veya bağımlılığın kullandığını nasıl bilebilirim?
Satpal Yadav

2
@SatpalYadav Mevcut en yeni sürümle eşleşmeyen sürümü aradım (Uygulamamda kullanıyorum). Örneğin support: design: 25.3.1 kullanıyorum ancak material-dialoglar support-v13: 25.1.1 kullanıyor. Bu yüzden support-v13: 25.3.1'i ekledim ve hata kayboluyor.
hardysim

1
Şu ana kadar benim için en iyi çözüm ama daha yeni kütüphaneleri nasıl geçersiz kılabilirim?
Mateusz Kaflowski

149

Her durumda, sadece bu sürümler veya kütüphaneler için değil:

Hata hakkında bir şeyler söyleyen küçük bilgi penceresine dikkat edin, değiştirmeniz ve eklemeniz gereken örnekleri söylüyor .

Bu durumda:

Bulunan sürümler 25.1.1, 24.0.0. Örnek olarak com.android.support:animated-vector-drawable:25.1.1 ve com.android.support:mediarouter-v7:24.0.0 verilebilir

Sizin

com.android.support:animated-vector-drawable:25.1.1

25.1.1 sürümü ve

com.android.support:mediarouter-v7:24.0.0

24.0.0 sürümü olduğundan , aynı sürümü içeren medya yönlendiricisini eklemeniz gerekir:

com.android.support:mediarouter-v7:25.1.1

Ve bunu küçük bilgi penceresinin söylediği her örnek için yapın, bu durumda 25.1.1 sürümüne sahip olmayan tüm kütüphaneler.

Değiştirmeniz gereken bir sonraki kitaplığı ve paketi görmek için belirtilen kitaplığı düzelttikten sonra sınıfınızı eşitlemeniz gerekir.

ÖNEMLİ:

Açıkça bir veya daha fazla belirtilen kitaplık kullanmıyorsanız ve hata veriyorsa, başka bir kitaplık tarafından dahili olarak kullanılıyor demektir, yine de açıkça derleyin.

Gerçekte derlediğiniz tüm kitaplıkların sürümlerinin farkını görmek için başka bir yöntem de kullanabilirsiniz (bir not bağımlılığı raporu çalıştırmak veya kitaplık dosyalarınıza gitmek gibi), gerçek objektif kullandığınız tüm kitaplıkları derlemektir. aynı sürüm .


1
bir ton teşekkürler, lütfen support:mediaroutertam olarak ne yaptığını açıklar mısınız?
mrid

1
Sanırım bu, çoğumuzun daha önce baktığına işaret ettiğin bir şey. Ve ie- "Hata hakkında bir şeyler söyleyen küçük bilgi penceresine dikkat edin ....". Teşekkürler, bu bana gerçekte neler olduğunu daha iyi anlayabiliyor.
Yo Apps

103

Sorunu çözmenin en iyi yolu, Android Studio tarafından önerilen tüm 'com.android.support: ...'

(Hangi destek sürümlerini kullandığınız önemli değildir - 27.1.1, 28.0.0 vb.)

İmleci hata satırına yerleştirin örn.

implementation 'com.android.support:appcompat-v7:28.0.0'

Android Studio size hangi 'com.android.support: ...' ifadesinin 'com.android.support:appcompat-v7:28.0.0' sürümünden farklı bir sürüm önerecektir.

Misal

Tüm com.android.support kitaplıkları aynı sürüm belirtimini kullanmalıdır (karıştırma sürümleri çalışma zamanı çökmelerine neden olabilir). Bulunan sürümler 28.0.0, 27.1.0, 27.0.2. Örnek olarak com.android.support:animated-vector-drawable:28.0.0 ve com.android.support:exifinterface:27.1.0 verilebilir.

Yani com.android.support:animated-vector-drawable:28.0.0 & ekleyin com.android.support:exifinterface:28.0.0. Şimdi gradle dosyasını senkronize edin.

Bu satırda hata kalmayana kadar önerilen tüm 'com.android.support: ...' ifadelerini tek tek uygulamaya çalışın implementation 'com.android.support:appcompat-v7:28.0.0'

Benim durumumda ekledim

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'

Tüm bu bağımlılıklar sizin için farklı olabilir.


manuel olarak hem "uygulama '' com.android.support:animated-vector-drawable:28.0.0 '" hem de "application' com.android.support:support-media-compat:28.0.0 '" ekledim ama com.android.support:appcompat-v7:28.0.0 '"hala kırmızı ile altı çizili
AAEM

@AAEM imleci hata satırının üzerine yerleştirirseniz, daha sonra eklemeniz gereken bağımlılıkları gösterir. Lütfen tüm bağımlılıkları aynı sürüme ekleyin ve sınıflandırma dosyasını senkronize edin. Tekrar hata gösteriyorsa, hata kalmayana kadar adımları tekrarlayın.
Adarsh ​​Vijayan P

100

Bunu build.gradle (Modül: app) sonuna ekleyin:

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'
        }
     }

   }
}

'25 .3.1'i tüm bağımlılıklar için kullanmak istediğiniz android destek kütüphanesinin sürümüyle değiştirdiğinizden emin olun, complile sdk sürümünüzden daha düşük olmamalıdır

dereceyi yeniden senkronize etmekten daha


3
İhtiyacım olan şey bu, bağımlılıklardan biri en üst düzeyde daha az bir sürüm belirtmiş olsam bile bir şekilde 27.0.1'de çekiyordu. Meraktan, neden "multidex" i hariç tutuyorsunuz?
ray

4
Bu benim için günü kurtardı. Ama bu android geliştirme her geçen thay daha da parçalanmış hale geliyor. İnsanların yayınlamadan önce her destek kütüphanesini mükemmel bir şekilde kontrol etmeleri gerekir. Her yeni destek sürümünden geçmek için her zaman zamanımız yoktur, çünkü tüm bunları yapmak yerine ürünlerimizi oluşturmaya odaklanmak istiyoruz. Her zaman sinir bozucu
larrytech

1
@ThinkTwiceCodeOnce Harikalar ve inteliji eklentileri hakkında daha fazla bilgi edinmek için buraya gidebilirsiniz: jetbrains.com/help/idea/getting-started-with-groovy.html
ezzou 5:18

1
Sen hayat kurtarıcısın. Bu birçok kez iptal edilmelidir!
imin

1
bu çözüm olmalı ... upvoted
Ast

54

Android Studio 2.3'e güncelledikten sonra aynı sorunu yaşadım

Bu satırı bağımlılıklara eklemek sorunumu çözdü:

compile 'com.android.support:customtabs:25.2.0'

2
Android Studio 2.3'e güncelledikten sonra aynı sorunu
yaşadım

1
RenderScript kullanan herkes için renderscriptSupportModeEnabled falsebunu false olarak ayarladım . Ve derleme 'com.android.support:customtabs:25.2.0've hata gitti gitti.
Gimenez

1
@LawGimenez Ve şimdi devre dışı bırakmış olursak, renderscript'i nasıl kullanmalıyız?
dor506

3
benim sorunum gibi renderscript çok gibi görünüyor, ama ben customtabs için değil, başka bir şey için renderscript gerekiyorsa?
HendraWD

46

A) Çalıştır gradle dependenciesveya./gradlew dependencies

B) Ağacınıza bakın ve kontrol etmediğiniz bir bağımlılık için hangi bağımlılıklarınızın farklı bir destek kitaplığı sürümü belirlediğini bulun.

Bu uyarının ayrıca bağımlılığın doğrudan kendi kodunuz tarafından kullanılmadığını gösterir. Benim durumumda, Facebook kullanmadığım bazı destek kütüphanelerini belirtir, bu bağımlılıkların çoğunun -> XXX (*) sembolleri ile gösterilen kendi 25.2.0 spesifikasyonum tarafından geçersiz kılındığını görebilirsiniz . Kart görünümü ve özel sekmeler kütüphaneleri kimse tarafından geçersiz kılınmadı, bu yüzden kullanmama rağmen kendim için 25.2.0 istemeliyim.

+--- 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 (*)

Gradle sizi zaten uyardıysa ve örnekler verdiyse ...

Örnek olarak com.android.support:animated-vector-drawable:25.1.1 ve com.android.support:mediarouter-v7:24.0.0 verilebilir

... gradle dependenciesoldukça ayrıntılı olabileceğinden , alt sürüm için biraz grep vurgulaması yaparsanız daha da kolaydır :

./gradlew dependencies | grep --color -E 'com.android.support:mediarouter-v7|$'

1
Açıklamanızdan XXX -> YYY (*) ifadesinin XXX'in YYY tarafından geçersiz kılındığı anlamına geldiğini anlıyorum, bunu bilmek güzel
Mercury

Kelimenin tam anlamıyla tek geçerli cevap.
stef

32

Değişkenleri kullan : Aşağıdakine benzer bir şey yapmak, tüm kütüphanelerde aynı sürümü kullandığınızdan emin olmanızı kolaylaştıracaktır

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}"

Google'ın bu sürümle nasıl başa çıkacağınızı önerdiği hakkında daha fazla bilgi bu makalede bulunabilir: https://developer.android.com/studio/build/index.html#top-level


teşekkürler Sevgili Daniel F, bu sürüm karıştırma sorunu önlemek için en iyi yol olduğunu düşünüyorum.
Hovanes Mosoyan

2
Sadece bir not lütfen: Yukarıdaki bağlantıda önerildiği gibi, bu tür değişkenleri TOP LEVEL GRADLE DOSYASINDA tekrar tanımlamalıyız)
Hovanes Mosoyan

25

sadece şunu ekleyin:

compile 'com.android.support:mediarouter-v7:25.2.0'

Updated yeni SDK sürümleri için

compile 'com.android.support:mediarouter-v7:28.0.0-alpha3'

Eski kitaplığın eski SDK'yı içermesi sorununu çözmez.
CoolMind

19

Aynı hata açıksa appcompat

implementation 'com.android.support:appcompat-v7:27.0.1'

sonra eklemek designçözüldü.

implementation 'com.android.support:appcompat-v7:27.0.1'
implementation 'com.android.support:design:27.0.1'

Benim için,

implementation 'de.mrmaffen:vlc-android-sdk:2.0.6'

dahil appcompat-v7:23.1.1edildi

.idea / kütüphaneler

olmadan vlc, appcompattek başına yeter.


Çok teşekkürler, işe yaradı, ama 'com.android.support:design:27.0.1' 'nin rolü nedir
Wessam El Mahdy

19

Yukarıdaki tüm cevapları ve yorumları zaten gördüğünüz gibi, ancak bu cevap yeni bir geliştiricinin kolayca alamayacağı bir şeyi temizlemektir.

./gradlew -q bağımlılıklar app: bağımlılıklar - yapılandırma derleme

Yukarıdaki çizgi, şüphesiz ama hayatınızı yukarıdaki çizginin sonucundan nasıl elde edeceğinizi kuşkusuz kurtaracaktır.

Yukarıdaki komuttan tüm bağımlılık grafiğini veya listesini aldığınızda, kodunuza girdiğiniz çakışan sürüm numarasını aramanız gerekir. lütfen aşağıdaki resme bakın.

resim açıklamasını buraya girin

Yukarıdaki resimde 23.4.0'ın sorunu oluşturduğunu görebilirsiniz, ancak bu, gradle dosyamızda bulamıyoruz. Şimdi bu sürüm numarası (23.4.0) bizi kurtaracak. Bu numaraya sahip olduğumuzda, yukarıdaki komut sonucunun sonucu olarak bu numarayı bulacağız ve bu bağımlılığı doğrudan sınıf dosyamıza doğrudan aktaracağız. Net bir görüntü elde etmek için lütfen aşağıdaki resme bakın.

com.android.support:cardview-v7:23.4.0 ve com.android.support:customtabs:23.4.0'ın sorunu oluşturan sürümü kullandığını açıkça görebilirsiniz . Şimdi sadece bu satırı bağımlılık listesinden kopyalayın ve not dosyamızda açıkça kullanın, ancak güncellenmiş sürüm bağlantısıyla

uygulama "com.android.support:cardview-v7:26.1.0" uygulama "com.android.support:customtabs:26.1.0"


1
Teşekkür ederim! Android stüdyosunun daha yeni sürümleriyle, derleme yerine uygulamaya geçirilmelidir
Avi Parshan

Evet haklısın @AviParshan derleme veya api kullanabilirsiniz. Api konfigürasyonlarında görünen bağımlılıklar, kütüphanenin tüketicilerine geçişli olarak maruz kalacak ve bu nedenle tüketicilerin derleme sınıfyolunda görünecektir. Uygulama konfigürasyonunda bulunan bağımlılıklar, diğer taraftan, tüketicilere maruz kalmayacak ve bu nedenle tüketicilerin derleme sınıfyoluna sızmayacaktır.
anoopbryan2

use ./gradlew -q bağımlılıklar app: bağımlılıklar - yapılandırma uygulaması
Sumit

15

Çatışmaları çözmenin başka bir yolu, sadece bu gibi tüm bağımlılıklar için doğru sürümü zorlamaktır:

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


Bağımlılık çözümleme kurallarının bakımı zordur. Sürüm numarası ve uygulanan destek kitaplıklarındaki herhangi bir değişiklik için manuel olarak muhafaza edilmelidir. Örneğin, Android Studio mevcut daha yeni lib sürümlerini vurgular, ancak bu kuralları yorumlamaz.
Manuel

12

Support-v4 yerine support-v13 kullanın

compile 'com.android.support:support-v13:25.2.0'

Bununla ilgili sorun yaşıyorum: 'com.android.support:recyclerview-v7:25.2.0' derleyin
Crime_Master_GoGo 14:17

Yukarıdaki ile aynı hata: -> Tüm com.android.support kütüphaneleri tam olarak aynı sürüm özelliklerini kullanmalıdır Recyclerview
Crime_Master_GoGo 14:17

@Googli, Lütfen compileSdkVersion , buildToolsVersion ve bağımlılıkları yazdım Bunu kullandım. Sorun değilcompile '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'
Mehmet Hanoğlu

12

bunları uygulama düzeyi bağımlılıklarına ekle

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'

9

Benim sorunum seninkine benziyor. İşte bir hata var!

compile 'com.android.support:appcompat-v7:25.3.0'

Tüm com.android.support kitaplıkları aynı sürüm belirtimini kullanmalıdır (karıştırma sürümleri çalışma zamanı çökmelerine neden olabilir). Bulunan sürümler 25.3.0, 24.0.0. Örnekler arasında 'com.android.support:animated-vector-drawable:25.3.0' ve 'com.android.support:mediarouter-v7:24.0.0'

Bu Örnekleri görmek, 'com.android.support:animated-vector-drawable:25.3.0' ve 'com.android.support:mediarouter-v7:24.0.0'

sadece bu kodları bağımlılıklara ekleyin, sürümlerin aynı olduğundan emin olun.

compile 'com.android.support:animated-vector-drawable:25.3.0'
compile 'com.android.support:mediarouter-v7:25.3.0'

9

compile 'com.google.android.gms:play-services:10.2.4'Derleme ekledikten sonra aynı hatayı aldım 'com.android.support:appcompat-v7:25.3.1'.

Sorunu eklemek animated-vector-drawableve mediarouter libsdüzeltmek.

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'

9

Bu vardı:

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'
}

ve şu hatayı aldı: resim açıklamasını buraya girin

Çözümler kolaydı - birincil bağımlılıkların hepsi doğruydu, ancak yapraklar - herhangi bir üçüncü taraf bağımlılığı. Suçlu bulununcaya kadar tek tek kaldırıldı ve facebook olduğu ortaya çıktı! onun android destek kitaplıklarının 27.0.2 sürümünü kullanarak. Cardview 27.1.1 sürümünü eklemeye çalıştım, ancak çözüm hala yeterince basitti.

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'
}

9

Android Studio 3.4 ve SDK sürümünü 28.0.0'a yükselttikten sonra bu sorunla karşılaştım. Aşağıdaki bağımlılığı uygulamak benim için sorunu çözdü.

    implementation 'com.android.support:exifinterface:28.0.0'

8

Android Studio 2.3'e yükselttikten sonra sorunumu çözmek için bu ikisini kullandım

compile 'com.android.support:animated-vector-drawable:25.0.0'
compile 'com.android.support:mediarouter-v7:25.0.0'

8

Daha önce aynı problemi yaşadım ve bunun için bir çözüm buldum.

Başka bir sürüme sahip kütüphaneleri ekledim ama aynı sürümle support:appcompat .

Örneğin hatanız için:

Tüm com.android.support kitaplıkları aynı sürüm belirtimini kullanmalıdır (karıştırma sürümleri çalışma zamanı çökmelerine neden olabilir). Bulunan sürümler 25.1.1, 24.0.0. Örnek olarak com.android.support:animated-vector-drawable:25.1.1 ve com.android.support:mediarouter-v7:24.0.0 verilebilir

* Çözüm, bu kütüphanelerin sürümlerini şu şekilde derlemektir:

compile 'com.android.support:mediarouter-v7:25.1.1'

-başka bir kütüphane aynı sorunu yaşıyorsa ve başka bir sürümü sadece support:appcompat sürümü

Bu sorunumu çözdü ve umarım sizinkini çözer.

En iyi dileklerimle :)


8

Yanıtları araştırıp birleştirdikten sonra, 2018 sürümü , bu sorunun ve benim için çalıştı:

1) Gezinme sekmesinde proje görünümüne değiştirin

2) [ProjeAdınız] /. İdea / libraries / dizinine gidin .

3) Gradle__com_android_support_ [libraryName] ile başlayan tüm dosyaları silin

Örnek: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml

4) Gradle dosyanızda bir değişken tanımlayın ve bunu $ {variableName} gibi sürüm numarasını değiştirmek için kullanın

Def değişkeni:

ext {
    support_library_version = '28.0.0' //use the version of choice
}

Değişkeni kullan:

implementation "com.android.support:cardview-v7:${support_library_version}"

örnek not:

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}"

}

1
Bu cevabın daha fazla açıklanması gerekiyor. Bir okuyucu, tüm gradle dosyanızı projelerine kopyalayıp yapıştırmaları gerektiğine inanabilir. Uzantıyı neden eklediğinizi ve gplaysvcs sürümüne neden bazı destek kütüphanelerini, bazılarını ise supportlib sürümüne ayarladığınızı ve bazılarının da değişmediğini açıklamanız gerekir.
jungledev

8

Android studio 3.x yeni sürümü ile Çok Basit.

Geçerli sürümden daha küçük olan sürümü kopyalayın ve geçerli sürümle aynı sürüm numarasıyla açıkça ekleyin.

Misal

Bulunan sürümler 27.1.1, 27.1.0. Örnek olarak com.android.support:animated-vector-drawable:27.1.1 ve com.android.support:exifinterface:27.1.0 verilebilir.

Sürümü kopyalayın ve kullandığınız geçerli sürüme eşit com.android.support:exifinterface:27.1.0olacak com.android.support:exifinterface:27.1.1şekilde değiştirin ve aşağıdaki gibi sınıflandırma bağımlılıklarınıza ekleyin.

implementation 'com.android.support:exifinterface:27.1.1'

Not: İşiniz bittiğinde , düzenleyicinin üst kısmındaki Şimdi senkronize et'i tıklamayı unutmayın .


7

2018'de bu hata için güncelleme proje yapısından uygulama ekleyin

implementation 'com.android.support:support-v13:28.0.0'

proje modunda -> Harici Kütüphaneler orada sorununuzu bulabilirsiniz, benim durumumda sürüm 28 ve bulduğum harici kütüphaneleri kullanıyorum com.android.support:support-media-compat-26.0.0 ve burada hataydı.

uygulamadan sonra support v13ve çalışıyor


Bu uygulama ile kırmızı alt çizgi kayboldu.
Truong Hieu

6

Sürüm 24.0.0yerine derlemek için başka bir bağımlılık tanımladınız 25.1.1. Lütfen tüm bağımlılıklar sürümünü aynı şekilde ayarlayın 25.1.1.


Cevabımı güncelledim tüm destek sürümleri aynı sürüme sahip 25.1.1
humazed

6

Hatayı kaldırmak için aşağıdaki satırları sıraya eklemek zorunda kaldım

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'

6

./Gradlew görevleri - tüm çalıştırdım ve hedeflenen sürümden (25.3.1) farklı bir sürüm olan bağımlılıkları kontrol ettim. Bunun gibi bir şey elde edersiniz:

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

Bu durumda, 25.3.1'i hedefliyordum ve bu komutu çalıştırdığımda farklı sürümleri hedefleyen bazı bağımlılıklar vardı. Hile, bu listedeki önceki sürümleri hedefleyen bağımlılıkları tanımlamak ve Gradle'daki bağımlılığın en son sürümünü içe aktararak bunu geçersiz kılmaktır.


6

Ben de aynı Sorun var ama bu Üç Satır ekleyerek çözdüm

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'

şimdi Her şey mükemmel çalışıyor


6

İşte bu uyarıyı düzeltmek için akışım

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)
    }
}

Uygulamanızdakidependencies tüm kitaplığı görüntülemek / doğrulamak için
Terminali açın ve çalıştırın./gradlew app:dependencies

Uygulamanızdadependencies belirli bir kütüphanenin görüntülemek için burada öğretici izleyin: - Gradle belirli bir bağımlılığın bağımlılıkları nasıl hariç tutulur

Umarım yardımcı olur


5

Projenizin dış kütüphanesini açın, bu kütüphaneden bahsetmediğiniz halde bazı kütüphanelerin hala önceki sürümü kullandığını göreceksiniz, bu yüzden önerim sadece sorununuzu çözecek olanlar için belirli kütüphane sürümünü kullanmaktır.


5

Sadece Android Destek Depomu güncelliyorum (revizyon: 44.0.0); sonra Android SDK araçları ve Emulator en son sürüm sdk yöneticisinden 25.3.1> SDK araçları Ve bu benim sorunum çözüldü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.