Setelah memperbarui ke android studio 2.3 saya mendapat pesan kesalahan ini. Saya tahu itu hanya petunjuk karena aplikasi berjalan secara normal tetapi ini benar-benar aneh.
Semua perpustakaan com.android.support harus menggunakan spesifikasi versi yang sama persis (pencampuran versi dapat menyebabkan crash runtime). Ditemukan versi 25.1.1, 24.0.0. Contohnya termasuk com.android.support:animated-vector-drawable:25.1.1 dan com.android.support:mediarouter-v7:24.0.0
kelas saya:
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
sumber
sumber
Jawaban:
Anda dapat menyelesaikan ini dengan salah satu solusi berikut:
Memperbarui:
Pada Android studio 3.0, itu menjadi jauh lebih mudah karena sekarang menunjukkan petunjuk yang lebih bermanfaat, jadi kita hanya perlu mengikuti petunjuk ini.
sebagai contoh:
Solusi:
Tambahkan perpustakaan secara eksplisit dengan versi lama tetapi dengan nomor versi baru.
dalam kasus saya
com.android.support:customtabs:26.1.0
jadi saya perlu menambahkan:yaitu: Ambil perpustakaan dari item kedua, dan terapkan dengan nomor versi dari yang pertama.
Catatan: jangan lupa untuk menekan sync sekarang sehingga gradle dapat membangun kembali grafik dependensi dan melihat apakah ada konflik lagi.
Penjelasan:
Anda mungkin bingung dengan pesan kesalahan karena tidak menggunakan
customtabs
jadi bagaimana saya memiliki konflik !!baik .. Anda tidak menggunakannya secara langsung tetapi salah satu perpustakaan Anda menggunakan versi lama secara
customtabs
internal, jadi Anda perlu memintanya secara langsung.jika Anda ingin tahu perpustakaan mana yang bertanggung jawab untuk versi lama dan mungkin meminta penulis untuk memperbarui libnya, Jalankan laporan ketergantungan Gradle, lihat jawaban lama untuk mengetahui caranya.
Catat ini
Jawaban lama:
terinspirasi oleh jawaban CommonsWare :
Jalankan laporan dependensi Gradle untuk melihat pohon dependensi lengkap Anda.
Dari sana, Anda akan melihat perpustakaan mana yang meminta versi lain dari perpustakaan Dukungan Android. Untuk apa pun yang diminta, Anda dapat memintanya secara langsung dengan versi 25.2.0 atau menggunakan pendekatan penyelesaian konflik Gradle lainnya untuk mendapatkan versi yang sama.
Memperbarui:
Pada versi plugin gradle: 3.0
compile
telah digantikan olehimplementation
atauapi
lihat jawaban ini untuk perbedaannya.karenanya gunakan sebagai berikut:
atau untuk windows cmd:
dan cari versi yang konflik.
Bagi saya, kesalahan itu hilang setelah dihapus
com.google.android.gms:play-services:10.2.0
Dan hanya menyertakan
com.google.android.gms:play-services-location:10.2.0
dancom.google.android.gms:play-services-maps:10.2.0
karena mereka adalah satu-satunya layanan bermain yang saya gunakan.Saya pikir
gms:play-services
ketergantungan pada beberapa komponen lama dari perpustakaan dukungan, jadi kita perlu menambahkannya sendiri secara eksplisit.untuk AS 3.0 yang lebih tua.
Lari:
Contoh:
jika ada yang tahu cara yang lebih baik di plugin gradle baru beri tahu saya.
sumber
com.google.android.gms:play-services:10.2.0
mendukung SDK 14 dan di atasnya, jika Anda ingin menggunakan SDK 14 di bawah ini, Anda perlu menggunakan versi10.0.1
seperti yang disebutkan di stackoverflow.com/a/42315590/6248491examples include
teks dalam pesan kesalahan menunjukkan contoh aktual dari proyek Anda sendiri, bukan contoh umum yang tidak jelas dari jenis masalah. Ambil pustaka dari item kedua, dan terapkan dengan nomor versi dari yang pertama.project/.idea/libraries
folder di sistem file Anda dan lihat perpustakaan mana yang berbeda.build.gradle
file Anda .Misalnya:
sumber
Untuk semua kasus, tidak hanya untuk versi atau pustaka ini:
Perhatikan jendela informasi kecil yang mengatakan sesuatu tentang kesalahan, ia mengatakan contoh yang harus Anda ubah dan tambahkan .
Pada kasus ini:
Anda
adalah versi 25.1.1 , dan versi Anda
adalah versi 24.0.0 , jadi Anda harus menambahkan mediarouter dengan versi yang sama:
Dan lakukan itu untuk setiap contoh yang dikatakan jendela informasi kecil, dalam hal ini semua perpustakaan yang tidak memiliki versi 25.1.1.
Anda harus menyinkronkan gradle setelah Anda memperbaiki pustaka yang ditunjukkan untuk melihat pustaka dan paket berikutnya yang harus Anda ubah.
PENTING:
Jika Anda tidak secara eksplisit menggunakan satu atau lebih perpustakaan yang ditentukan dan itu memberi Anda kesalahan, itu berarti sedang digunakan secara internal oleh perpustakaan lain, tetap kompilasi secara eksplisit.
Anda juga dapat menggunakan metode lain untuk melihat perbedaan versi dari semua perpustakaan yang Anda kompilasi (seperti menjalankan laporan dependensi gradle atau pergi ke file perpustakaan Anda), tujuan sebenarnya adalah mengkompilasi semua perpustakaan yang Anda gunakan dengan versi yang sama .
sumber
support:mediarouter
sebenarnya dilakukannya?Cara terbaik untuk menyelesaikan masalah adalah menerapkan semua 'com.android.support: ...' yang disarankan oleh Android Studio
(Tidak masalah versi dukungan apa yang Anda gunakan - 27.1.1, 28.0.0 dll.)
Tempatkan kursor ke garis kesalahan mis
Android Studio akan menyarankan Anda yang 'com.android.support: ...' versi berbeda dari 'com.android.support:appcompat-v7:28.0.0'
Contoh
Jadi tambahkan
com.android.support:animated-vector-drawable:28.0.0
&com.android.support:exifinterface:28.0.0
. Sekarang sinkronkan file gradle.Satu per satu cobalah untuk mengimplementasikan semua yang disarankan 'com.android.support: ...' hingga tidak ada kesalahan di baris ini
implementation 'com.android.support:appcompat-v7:28.0.0'
Dalam kasus saya, saya menambahkan
Semua dependensi ini, bisa berbeda untuk Anda.
sumber
Tambahkan ini di akhir build.gradle Anda (Modul: aplikasi):
Pastikan Anda mengganti '25 .3.1 'dengan versi pustaka dukungan android yang ingin Anda gunakan untuk semua dependensi, itu tidak boleh lebih rendah dari versi sdk Anda yang lemah
dari sinkronisasi ulang gradle
sumber
Saya memiliki masalah yang sama persis setelah memperbarui ke Android Studio 2.3
Menambahkan baris ini ke dependensi memecahkan masalah saya:
sumber
renderscriptSupportModeEnabled false
ke false. Dan menambahkan kompilasi'com.android.support:customtabs:25.2.0'
dan kesalahan hilang.A) Jalankan
gradle dependencies
atau./gradlew dependencies
B) Lihatlah pohon Anda dan cari tahu mana dari dependensi Anda menentukan versi perpustakaan dukungan yang berbeda untuk dependensi yang tidak Anda kontrol.
Saya tidak menyadari bahwa peringatan ini juga ditampilkan jika dependensi sepenuhnya tidak digunakan secara langsung oleh kode Anda sendiri. Dalam kasus saya, Facebook menentukan beberapa lib dukungan yang tidak saya gunakan, Anda dapat melihat di bawah sebagian besar dependensi itu ditimpa oleh spesifikasi saya sendiri 25.2.0, dilambangkan dengan simbol -> XXX (*) . Tampilan kartu dan tab kustom lib tidak ditimpa oleh siapa pun, jadi saya perlu meminta 25.2.0 untuk itu sendiri meskipun saya tidak menggunakannya.
Jika gradle sudah memperingatkan Anda dan memberi Anda contoh ...
... bahkan lebih mudah jika Anda memasukkan beberapa highlight grep untuk versi yang lebih rendah karena
gradle dependencies
bisa sangat verbose:sumber
Gunakan variabel : Melakukan sesuatu seperti berikut ini akan memudahkan Anda untuk memastikan bahwa Anda menggunakan versi yang sama dengan semua pustaka
Informasi lebih lanjut tentang cara Google menyarankan agar Anda menangani versi ini dapat ditemukan di artikel ini: https://developer.android.com/studio/build/index.html#top-level
sumber
tambahkan saja ini:
Updated
untuk versi SDK barusumber
Jika kesalahan yang sama aktif
appcompat
kemudian menambahkan
design
memecahkannya.Bagi saya, menambahkan
termasuk
appcompat-v7:23.1.1
dalamtanpa
vlc
,appcompat
sendirian sudah cukup.sumber
Seperti yang telah Anda lihat semua jawaban dan komentar di atas, tetapi jawaban ini adalah untuk menghapus sesuatu yang mungkin tidak mudah diperoleh pengembang baru.
./gradlew -q dependensi aplikasi: dependensi --compilasi konfigurasi
Baris di atas akan menyelamatkan hidup Anda tanpa keraguan tetapi bagaimana mendapatkan poin yang tepat dari hasil baris di atas.
Ketika Anda mendapatkan semua bagan dependensi atau daftar dari perintah di atas maka Anda harus mencari nomor versi yang bertentangan yang Anda dapatkan dalam kode Anda. silakan lihat gambar di bawah ini.
pada gambar di atas Anda dapat melihat bahwa 23.4.0 menciptakan masalah tetapi ini tidak dapat kami temukan di file gradle kami. Jadi sekarang nomor versi ini (23.4.0) akan menyelamatkan kita. Ketika kita memiliki nomor ini maka kita akan menemukan nomor ini di hasil dari hasil perintah di atas dan langsung mengimpor ketergantungan itu langsung ke file gradle kita. Silakan lihat gambar di bawah ini untuk mendapatkan tampilan yang jelas.
Anda dapat dengan jelas melihat bahwa com.android.support:cardview-v7:23.4.0 dan com.android.support:customtabs:23.4.0 menggunakan versi yang menciptakan masalah. Sekarang cukup salin baris tersebut dari daftar ketergantungan dan gunakan secara eksplisit dalam file gradle kami tetapi dengan tautan versi yang diperbarui
implementasi "com.android.support:cardview-v7:26.1.0" implementasi "com.android.support:customtabs:26.1.0"
sumber
Cara lain untuk menyelesaikan konflik adalah dengan memaksa versi yang benar untuk semua dependensi seperti ini:
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
sumber
Gunakan dukungan-v13 alih-alih dukungan-v4
sumber
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'
tambahkan ini di dependensi tingkat aplikasi
sumber
Masalah saya mirip dengan Anda. Di sini ada kesalahan!
compile 'com.android.support:appcompat-v7:25.3.0'
Semua perpustakaan com.android.support harus menggunakan spesifikasi versi yang sama persis (pencampuran versi dapat menyebabkan crash runtime). Ditemukan versi 25.3.0, 24.0.0. Contohnya termasuk 'com.android.support:animated-vector-drawable:25.3.0' dan 'com.android.support:mediarouter-v7:24.0.0'
Lihat Contoh ini termasuk 'com.android.support:animated-vector-drawable:25.3.0' dan 'com.android.support:mediarouter-v7:24.0.0'
cukup tambahkan kode-kode ini dalam dependensi, pastikan versinya sama.
sumber
Saya mendapat kesalahan yang sama setelah menambahkan
compile 'com.google.android.gms:play-services:10.2.4'
dengan kompilasi'com.android.support:appcompat-v7:25.3.1'
.Menambah
animated-vector-drawable
danmediarouter libs
memperbaiki masalah.sumber
Saya punya ini:
dan mendapat kesalahan ini:
Solusinya mudah - dependensi utama semuanya benar sehingga daun - ketergantungan pihak ketiga. Dihapus satu per satu sampai ditemukan pelakunya, dan ternyata menjadi facebook! menggunakan versi 27.0.2 dari perpustakaan dukungan android. Saya mencoba menambahkan cardview versi 27.1.1 tetapi itu tidak berhasil meskipun solusinya masih cukup sederhana.
sumber
Saya menghadapi masalah ini setelah memutakhirkan ke android studio 3.4 dan versi SDK ke 28.0.0. Menerapkan ketergantungan di bawah ini memecahkan masalah bagi saya.
sumber
Saya menggunakan keduanya untuk menyelesaikan masalah saya setelah memutakhirkan ke android studio 2.3
sumber
Saya memiliki masalah yang sama sebelumnya dan saya mendapat solusinya.
Saya baru saja menambahkan perpustakaan yang memiliki versi lain tetapi dengan versi saya yang sama
support:appcompat
.Untuk kesalahan Anda misalnya:
* Solusinya adalah dengan mengkompilasi versi perpustakaan ini seperti itu:
compile 'com.android.support:mediarouter-v7:25.1.1'
-Jika perpustakaan lain memiliki masalah yang sama dan memiliki versi lain hanya kompilasi dengan Anda
support:appcompat
versiIni menyelesaikan masalah saya dan saya harap ini menyelesaikan masalah Anda.
Semoga sukses :)
sumber
Setelah mencari dan menggabungkan jawaban, versi 2018 pertanyaan ini dan berhasil untuk saya:
1) Pada tab navigasi ubahlah ke tampilan proyek
2) Navigasikan ke [NamaProyek Anda] /. Idea / libraries /
3) Hapus semua file yang dimulai dengan Gradle__com_android_support_ [libraryName]
Misalnya: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml
4) Dalam file gradle Anda, tentukan variabel dan gunakan untuk mengganti nomor versi seperti $ {variableName}
Variabel def:
Gunakan variabel:
contoh gradle:
sumber
Sangat Sederhana dengan versi baru dari studio android 3.x.
Cukup salin versi yang kurang dari versi saat ini dan tambahkan secara eksplisit dengan nomor versi yang sama dengan versi saat ini.
Contoh
Cukup salin versi
com.android.support:exifinterface:27.1.0
dan ubah kecom.android.support:exifinterface:27.1.1
sehingga menjadi sama dengan versi saat ini yang Anda gunakan dan tambahkan ke dependensi gradle Anda sebagai berikut.Catatan: Setelah selesai jangan lupa klik Sinkronkan sekarang di bagian atas editor.
sumber
pada 2018 pembaruan untuk kesalahan ini menambahkan implementasi dari struktur proyek
dalam mode proyek -> Perpustakaan Eksternal di sana Anda dapat menemukan masalah Anda, dalam kasus saya saya menggunakan versi 28 dan perpustakaan eksternal yang saya temukan
com.android.support:support-media-compat-26.0.0
dan di sini ada kesalahan.setelah implementasi
support v13
dan berfungsisumber
Anda telah menentukan ketergantungan lain untuk dikompilasi dengan versi,
24.0.0
bukan25.1.1
. Silakan tetapkan semua versi dependensi sama dengan25.1.1
.sumber
Saya harus menambahkan baris berikut dalam gradle untuk menghapus kesalahan
sumber
Saya menjalankan tugas ./gradlew --all dan memeriksa dependensi yang merupakan versi yang berbeda dari versi yang ditargetkan (25.3.1). Anda akan mendapatkan sesuatu seperti ini:
Dalam hal ini, saya menargetkan 25.3.1, dan memiliki beberapa dependensi yang menargetkan berbagai versi ketika saya menjalankan perintah ini. Caranya adalah mengidentifikasi dependensi dalam daftar ini yang menargetkan versi sebelumnya, dan menggantinya dengan mengimpor versi terbaru dari dependensi di Gradle.
sumber
Saya memiliki Masalah yang sama tetapi saya memecahkan ini Dengan menambahkan Tiga Garis itu
sekarang semuanya bekerja dengan sempurna
sumber
Inilah aliran saya untuk memperbaiki peringatan ini
build.gradle
Untuk melihat / memverifikasi
dependencies
semua perpustakaan di aplikasi AndaBuka terminal dan jalankan
./gradlew app:dependencies
Untuk melihat
dependencies
perpustakaan tertentu di aplikasi Anda, ikuti tutorial di sini: - Bagaimana mengecualikan dependensi dari dependensi tertentu di GradleSemoga ini bisa membantu
sumber
Buka pustaka eksternal proyek Anda, Anda akan melihat bahwa beberapa pustaka masih menggunakan versi sebelumnya meskipun Anda tidak menyebutkan pustaka tersebut sehingga saran saya hanya menggunakan versi pustaka tertentu untuk mereka yang akan memecahkan masalah Anda.
sumber
Saya baru saja memperbarui Repositori Dukungan Android saya ke (revisi: 44.0.0); kemudian Android SDK tools dan Emulator ke versi terbaru 25.3.1 dari sdk manager> SDK tools Dan itu memecahkan masalah saya.
sumber