Sınıf bağımlılığının yeni bir sürümü olup olmadığı nasıl kontrol edilir


232

Android Studio'da +sürüm numarası kullandığımda (gibi com.android.support:recyclerview-v7:21.+) "Sürüm numaralarında + kullanmaktan kaçının" uyarısı alıyorum. Belirli bir sürüm numarasını kullandığımda her zaman en son sürümü kullanamıyorum. Projemde çok fazla bağımlılık var. Bağımlılığın daha yeni bir sürümü olup olmadığını nasıl kontrol edebilirim? Bir bağımlılığın daha yeni bir sürümü olduğunda bana bildirmek için bir Android Studio eklentisi - veya bunun gibi bir şey - var mı?

Düzenleme: Android stüdyosu eski android destek kitaplıklarını ve Google oyun hizmetlerini vurgular. Ancak bu, diğer özel kitaplıklar için kullanılamaz.

resim açıklamasını buraya girin



2
En azından Android 3.0'da, özel kitaplık güncellemeleri artık destek kitaplığına ilişkin soru resminizle aynı bildirimi gösteriyor.
17'de Suragch

@Suragch Android Studio 3.0.1'de benim için bazı bağımlılıklar için çalışmıyor
Rémy

Gradleplease.appspot.com'u yeni kütüphane versiyonunu kontrol etmek için kullanabiliriz
Alex Kisel

Yanıtlar:


187

Bu artık Android Studio'da Lint kontrolü olarak yerleşiktir. Buradan etkinleştirebilirsiniz:

Ayarlar> Editör> Denetimler> "Daha Yeni Kütüphane Sürümleri Var"

Bu denetimin açıklaması:

Daha Yeni Kütüphane Sürümleri Var

Bu dedektör, bu proje tarafından kullanılan bağımlılıklar için daha yeni sürümlerin olup olmadığını görmek için merkezi bir depo ile kontrol eder. Bu, Android SDK araçlarında ve kitaplıklarında daha yeni sürümleri kontrol eden GradleDependency kontrolüne benzer, ancak bu herhangi bir MavenCentral bağımlılığıyla çalışır ve her seferinde kütüphaneye bağlanır, bu da onu daha esnek ama aynı zamanda daha yavaş hale getirir .

Bu tanıtabileceği yavaşlama nedeniyle, her zaman açık olmak yerine, periyodik olarak manuel olarak çalıştırmanızı tavsiye ederim. Bunu şu şekilde yapabilirsiniz:

Analiz Et> "Denetimi Ada Göre Çalıştır"

Sonra "Daha Yeni Kitaplık Sürümleri Var" ifadesini arayın ve modülünüzde çalıştırın.

Düzenleme : Yukarıdaki sadece Android Studio 2.3 itibariyle çalışmalıdır. Eski bir sürümdeyseniz (güncellemeniz gerekir) aşağıdakiler yardımcı olabilir:

Görünüşe göre, manuel olarak çalıştırmak için incelemeyi etkinleştirmiş olmanız gerekir - bu nedenle (Android Studio 2.0 Beta 2'den itibaren) incelemeyi ayarlarda bulmanız, etkinleştirmeniz, ardından ada göre çalıştırmanız ve tekrar devre dışı bırakmanız gerekir ( önceki performansı yeniden kazanmak için).


4
Yanlış bir şey yapıp yapmadığımı bilmiyorum ama bu benim için işe yaramadı
osrl

1
Evet, benim için aynı, bölge MavenCentral'da değil. Sonradan uyarlama sürümünüz bu şekilde tanımlanmış mı? Benimki ve bu da bulamadı def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
osrl

1
tanımlı sürüm dizesiyle bulamadı. Bulabildi com.squareup.okhttp:okhttp:2.7.2. Also on2.0.0-beta4
osrl

2
Bu, "İnceleme" sekmesindeki mevcut güncellemeleri gösterir, ancak build.gradle öğesinde bir uyarı olarak vurgulamaz. Henüz bunu yapan bir çözüm bulamadım.
Tiago

3
SADECE MavenCentral bağımlılıkları için çalıştığını bildirmek için bu cevaba geri dönmek zorunda kaldım. Bu, Jitpack veya diğer kaynaklardan alınan depoların otomatik olarak güncellenmediği anlamına gelir. TÜM bağımlılıkların en son sürümünü almak için doğru yöntem bu cevabı vermektir [ stackoverflow.com/questions/28538824/… (burada)
Ray Li

274

GÜNCELLEME (23/05/18):

Android Studio'nun daha yeni sürümü Proje Yapısı iletişim kutusunda sürüm güncellemelerini göstermez. Bunun yerine, Adam-s'nin cevabı Android Studio 3+ için doğru

Analiz Et> "Denetimi Ada Göre Çalıştır"

Ardından " Newer Library Versions Available" için arama yapın

ÖNCEKİ YOL:

İtibariyle Android Studio 2.2, yeni bir Project Structureuygulama hem de yerel VE uzak veri havuzunda bulunan mevcut güncellemeleri ile kullandığı bağımlılıkları iletişim gösterileri listesinde.

  • Adresine giderek etkinleştirin Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimentalve Use new Project Structure dialog(Teşekkürler @jessehensold)
  • Sonra gidip açın File > Project Structure > Messages

resim açıklamasını buraya girin

Android Studio'nun eski sürümü için aşağıdaki diğer yanıtlara bakın.


1
Düzenleme hakkında; Android Studio'yla ilgiliydi, çünkü bir Android Studio eklentisi arıyordum. Cevabınız için teşekkürler ama zaten gördüm.
osrl

11
Bu artık Android Studio'da mevcut değil (beta 2'yi kullanarak).
Gonzalo

8
Tercihler> Derleme, Yürütme, Dağıtım> Gradle> Deneysel bölümüne girip 'Yeni Proje Yapısı Kullan iletişim kutusunu' kontrol
etmeliydim

1
"Uygula" düğmesini etkinleştirmek için "Bağımlılıklar" sekmesine gitmelisiniz. Biraz hata?
Mateusz Kaflowski

2
Bunu Android Studio 2.3 ile denedim, ancak iletişim Dependenciessekmesi Project Structureprojemin herhangi bir bağımlılığını bulamıyor.
jakub.g

58

Android Studio'nun yerleşik özelliğinin yanı sıra, Gradle Versions Plugin adlı güzel bir gradle eklentisi , tam olarak ne istediğinizi yapar, düz gradle uzantısı olmanın avantajı ile herhangi bir belirli IDE'ye BAĞLANMAMASI, bu nedenle Gradle kullanan herhangi bir proje için yararlıdır.

Gradle Sürümleri Eklentisi, insan tarafından okunabilir düz metin biçiminde raporlar oluşturabilir, ancak otomatik işlem için JSON veya XML olarak da dökebilir.

Gradle dosyanıza eklendiğinde, standart kullanım daha çok şuna benzer:

> ./gradlew dependencyUpdates

Bu, şuna benzeyen proje bağımlılığı raporu oluşturur:

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.github.maksim88:PasswordEditText:v0.9
 - com.android.databinding:adapters:1.3.1
 - com.joanzapata.iconify:android-iconify-entypo:2.2.2
 - com.joanzapata.iconify:android-iconify-fontawesome:2.2.2
 - com.webnetmobile.tools:webnet-log:1.0.3
 - com.nulab-inc:zxcvbn:1.2.2

The following dependencies exceed the version found at the milestone revision level:
 - com.hannesdorfmann.fragmentargs:annotation [4.0.0-SNAPSHOT <- 3.0.2]
 - com.hannesdorfmann.fragmentargs:bundler-parceler [4.0.0-SNAPSHOT <- 3.0.2]
 - com.github.bumptech.glide:glide [3.7.0 <- 3.6.1]
 - com.hannesdorfmann.fragmentargs:processor [4.0.0-SNAPSHOT <- 3.0.2]

The following dependencies have later milestone versions:
 - com.github.PhilJay:MPAndroidChart [v2.2.5 -> v3.0.1]
 - com.android.support:appcompat-v7 [25.1.0 -> 25.1.1]
 - com.jakewharton:butterknife [8.4.0 -> 8.5.1]

Generated report file build/dependencyUpdates\report.txt

Kapsamlı kullanım örnekleri için belgelere bakın .


NOT: Bu yanıtı yazarken (2017-01), 0.17.0'dan daha yüksek sürümler, plan metin biçiminde daha fazla çıktı üretir. böylece proje çıktıları şişirilmiş olur. Bu işe yaramaz bulursanız, ya 0.17.0 sürümüne sadık kalın ya da bu sorunun herhangi bir şekilde ele alındığı sürümü kullanın (böyle bir sürüm varsa;)


3
Müthiş! Buraya normal bir Java projesi için baktım. Lint'in Android özelliği olmayan güzel bir genel çözüm.
TWiStErRob

Bunu Configuration 'compile' in project ':myapp' is deprecated. Use 'implementation' instead. The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.çalıştırdığımda hata aldım .
Meyve


2
"Yeni Kütüphane Sürümleri Var" yöntemi işe yaramadı, ama bu mükemmel! (Lib sürümleri için değişkenli birden fazla gradle dosyası kullanıyorum)
norbDEV

Bu eklentinin resmini ekleyebilir misiniz? Bir listede bulamadım.
CoolMind

14

DEPRECATED - MODERN YOL İÇİN KABUL EDİLDİ

Aşağıda sunduğum araç, Android Studio / Gradle'ın yeni sürümlerinde çalışmıyor ve yazarı artık bunu korumuyor ( (30/10/2016 itibariyle ). Bu nedenle, Android Studio'nun eski sürümüyle çalışmadığı sürece kabul edilen cevapta sunulan çözüm kullanılmalıdır .


Ocak 2016'dan itibaren, Android Studio için benzer bir şey yapan bir eklenti var. Bağımlılıklar Sürüm Denetleyicisi ve kaynakları GitHub'da bulunabilen .

Yerleşik arabirimden eklenebilir (Ayarlar> Eklentiler> Depolara göz at ...):

Yerel arayüzde neye benzediğini

Kurulum ve yeniden başlatmadan sonra, kullanıcı arayüzünde aşağıdaki sekme görünür:

Yeniden başlattıktan sonra görünen yeni kullanıcı arayüzü sekmesi.

İlgili build.gradledaha sonra VersionChecker panelinin sol tarafına yapıştırılmalı ve Version Checkdüğmeye basılmalıdır. Sonuç, sağ tarafta görüntülenen ve yapıştırılan komut dosyasında kullanılan kitaplıkların en son sürümlerini içeren bir tablodur (yukarıdaki resimde gösterildiği gibi).


İlk başta aradığım şey bu olsa bile, beklendiği gibi çalışmıyor. Bu konuda Github deposunda bir konu açtım. github.com/takuaraki/BağımlılıklarVersionChecker/issues/5
osrl

Bunu denedim ve "sürümleri kontrol et" i tıklattığımda genel bir hata / hata mesajı balonu aldım
Greg Ennis

@GregEnnis Eklentinin en son sürümüyle ilgili bir sorun var. Ya daha eski olanı kullanın ya da bir güncelleme bekleyin ...
Dev-iL

11

Bkz. Dosya> Proje Yapısı, ardından "Öneriler" i tıklayın. Bu çözüm Hemant Sharma ve Jeremías Gersicich tarafından önerildi, ancak Android Studio bunu 3.4.1 sürümünde değiştirdi.

resim açıklamasını buraya girin


başkası bu ekran sadece android studio 3.5 boş alıyorum?
Nicola Beghin

@NicolaBeghin, boş projeyi kontrol ettim ve 4 öneri aldım. Evet, Temmuz ayında öneri göstermediği bir terim vardı, ancak bu hatayı düzelttiler. Sanırım, bu Google sunucu sorunu, bazen olabilir.
CoolMind

DesteklemiyorGradle KTS
Vlad

2

Destek kitaplığı (com.android.support) bağımlılıkları için daha iyi bir seçenek vardır - andle

Jcenter ve maven merkezlerini de sorgulayabilir.

Tüm projeyi bir kerede güncellemek için basit üç adım.

1. yükleyin:

    $ sudo pip install andle

2. sdk ayarlayın:

    $ andle setsdk -p <sdk_path>

3. güncelleme bağımlılığı:

    $ andle update -p <project_path> [--dryrun] [--remote] [--gradle]

--dryrun: yalnızca konsolda yazdırma sonucu

--remote: jcenter ve mavenCentral'da sürümü kontrol et

--gradle: not sürümünü kontrol et

Daha fazla bilgi için bkz. Https://github.com/Jintin/andle


sadece destek kütüphaneleri için mi?
osrl

@osrl --remote veya -r eklerseniz jcenter'daki sürümü ayrıştırır.
Jintin

0

Aynı sorunla uğraşıyordum ve yanıtı denedim https://stackoverflow.com/a/35371234/6412430

Android Studio 3.4.1'de benim için gerçekten işe yarayan şey:

File -> Project Structure -> Dependencies

Bu noktaya ulaştığınızda, projenize veya modülünüze dahil olan tüm bağımlılıklar listelenir. Eski olanların altı çizilir ve bunlardan birini seçtiğinizde, değişkenin güncellenmesi (bildirimden ayrılırsanız) veya Bağımlılık için seçenekler sunan detayları gösterilir.

Biraz geç oldu ama benim için işe yarayan buydu.


Ben de bu yolu buldum. Birisi eksi işaretli tuhaf.
CoolMind

-1

Proje bağımlılığınız için güncelleme veya tavsiye almak için android projesi ile aynı olmalıdır

FILE -> Project Structure -> MODULES(app) -> Dependencies

Bağımlılıklar sekmesine ulaştığınızda +Pencerenin sağ üst köşesinde bulunan düğmesine tıklayın . +Seç'i tıkladığınızda , arama kutusunda bağımlılığınızı aramak için Library DependencyYeni pencere açılacaktır Choose Library Dependency, listelenen tüm Android bağımlılıkları güncellenir.


Teşekkürler, ancak bu liste aynı zamanda kullanmadığım ve bazen kullandığım kütüphaneleri içermiyor. Ayrıca Gson com.google.code.gson:gson:2.2.4aslında ikencom.google.code.gson:gson:2.8.5
CoolMind

bazen bağımlılıklar uyumlu sınıf sürümü ile çalışır, Lütfen Proje seviye sınıfında güncellenmiş sınıf kullanıp kullanmadığınızı kontrol edin
Hemant Sharma
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.