Gradleの依存関係に新しいバージョンがあるかどうかを確認する方法


232

Android Studio +でバージョン番号(com.android.support:recyclerview-v7:21.+)「バージョン番号に+を使用しないでください」という警告が表示されます。特定のバージョン番号を使用すると、常に最新バージョンを使用できるとは限りません。プロジェクトには多くの依存関係があります。依存関係に新しいバージョンがあるかどうかを確認するにはどうすればよいですか?依存関係の新しいバージョンがあるときに通知するAndroid Studioプラグイン、またはそのようなものはありますか?

編集: Androidスタジオは、古いAndroidサポートライブラリとGoogle Playサービスを強調しています。ただし、これは他のカスタムライブラリでは使用できません。

ここに画像の説明を入力してください



2
少なくともAndroid 3.0では、カスタムライブラリのアップデートに、サポートライブラリの質問画像と同じ通知が表示されるようになりました。
Suragch

これは、Android 3.0.1スタジオで私のためにいくつかの依存関係のために動作しません@Suragch
レミー

gradleplease.appspot.comを使用して、新しいライブラリバージョンをチェックできます
Alex

回答:


187

これはLintチェックとしてAndroid Studioに組み込まれました。ここで有効にできます:

設定>エディター>インスペクション> "利用可能な新しいライブラリバージョン"

この検査の説明:

利用可能な新しいライブラリバージョン

このディテクタは、中央リポジトリをチェックして、このプロジェクトで使用される依存関係に使用可能な新しいバージョンがあるかどうかを確認します。これは、Android SDKツールとライブラリで利用可能な新しいバージョンをチェックするGradleDependencyチェックに似ていますが、これはすべてのMavenCentral依存関係で機能し、ライブラリに毎回接続するため、柔軟性が向上しますが、速度が大幅に低下します。

速度が低下するため、常にオンにするのではなく、定期的に手動で実行することをお勧めします。これは次の方法で実行できます。

「分析」>「名前で検査を実行」

次に、「利用可能な新しいライブラリバージョン」を検索し、モジュールで実行します。

編集:上記はAndroid Studio 2.3以降で機能するはずです。古いバージョンを使用している場合(更新する必要があります)、以下が役立つ場合があります。

手動で実行するには、インスペクションを有効にする必要があるようです。そのため、(Android Studio 2.0 Beta 2以降)設定でインスペクションを見つけて有効にし、名前で実行してから、再度無効にする必要があります(以前のパフォーマンスを取り戻すため)。


4
私が何か間違っているのかどうかはわかりませんが、
それでもうまくいき

1
はい、私にとっても同じです。レルムはMavenCentralにはありません。後付けバージョンはこのように定義されていますか?私のものであり、それも見つけることができませんでした def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
osrl

1
定義されたバージョンの文字列が見つかりませんでした。見つけることができましたcom.squareup.okhttp:okhttp:2.7.2。またオン2.0.0-beta4
osrl

2
これにより、[検査]タブに利用可能な更新が表示されますが、build.gradleで警告として強調表示されません。私はそれを行う解決策をまだ見つけていません。
ティアゴ

3
この回答に戻って、MavenCentralの依存関係でのみ機能することを報告する必要がありました。これは、Jitpackまたは他のソースからのリポジトリが自動的に更新されないことを意味します。ALLの依存関係の最新バージョンを取得するための正しい方法は、この回答にある[ stackoverflow.com/questions/28538824/...(ここでは)
レイリー

274

更新(05/23/18):

Android Studioの新しいバージョンでは、[プロジェクト構造]ダイアログにバージョンの更新が表示されません。代わりに、Adam-sの答えはAndroid Studio 3以降の正しい答えです

「分析」>「名前で検査を実行」

次に、「Newer Library Versions Available」を

以前の方法:

の時点でAndroid Studio 2.2、新しいProject Structureダイアログに、アプリが使用している依存関係のリストと、ローカルおよびリモートリポジトリからの利用可能な更新が表示されます。

  • に移動しAndroid Studio > Settings > Build, Execution, Deployment > Gradle > Experimentalて確認し、Use new Project Structure dialog(ありがとう@jessehensold)
  • 次に行くことによってそれを開きます File > Project Structure > Messages

ここに画像の説明を入力してください

Android Studioの古いバージョンについては、以下の他の応答を参照してください。


1
編集について; 私がAndroid Studioプラグインを探していたので、それはandroid-studioについてでした。回答ありがとうございます。
osrl 2015

11
これはAndroidスタジオには存在しません(ベータ2を使用)。
ゴンザロ

8
Preferences> Build、Execution、Deployment> Gradle> Experimentalに移動し、「Use new Project Structure」ダイアログをチェックする必要がありました
jessehensold

1
「適用」ボタンを有効にするには、「依存関係」タブに移動する必要があります。バグ?
Mateusz Kaflowski 2017

2
Android Studio 2.3でこれを試しましたが、ダイアログのDependenciesタブでProject Structureプロジェクトの依存関係が見つかりません。
jakub.g 2017

58

Android Studioの組み込み機能の他に、Gradle Versions Pluginと呼ばれる素晴らしいGradleプラグインがあります。があります。これは、Gradleを使用するすべてのプロジェクトに役立つ、特定のIDEに結合しないプレーンGradle拡張であるという利点を備えています。

Gradleバージョンプラグインは、人間が読めるプレーンテキスト形式でレポートを作成できますが、自動処理のためにJSONまたはXMLとしてダンプすることもできます。

gradleファイルに追加すると、標準的な使用法は次のようになります。

> ./gradlew dependencyUpdates

これにより、次のようなプロジェクト依存関係レポートが生成されます。

------------------------------------------------------------
: 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

広範な使用例については、ドキュメントを参照してください。


注:この回答を書いている時点(2017-01)では、0.17.0より高いバージョンでは、計画テキスト形式でより多くの出力が生成されます。したがって、プロジェクトURLは出力全体を肥大化させます。私が役に立たないと思った場合は、バージョン0.17.0を使用するか、この問題に対処したバージョンを使用してください(そのようなバージョンが存在する場合)。


3
驚くばかり!通常のJavaプロジェクト用にこれを探してここに行きました。LintのAndroid固有の機能がない優れた一般的なソリューション。
TWiStErRob 2017

これを実行するとエラーが発生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.しました。
Fruit

ここにバグレポートを記入してください:github.com/ben-manes/gradle-versions-plugin/issues
Marcin Orlowski

2
「利用可能な新しいライブラリバージョン」メソッドは機能しませんでしたが、これは完璧です!(libバージョンの変数を含む複数のgradleファイルを使用します)
norbDEV

そのプラグインの画像を追加できますか?リストに見つかりませんでした。
CoolMind

14

非推奨- SEE ACCEPTEDのANSWER MODERN WAY FOR

以下に示すツールは、Android Studio / Gradleの新しいバージョンでは機能せず、作成者はそれを維持していません(30/10/2016以降)。したがって、古いバージョンのAndroid Studioで作業しない限り、承認された回答で提示されているソリューションを使用する必要があります


2016年1月の時点で、同様のことを行うAndroid Studio用のプラグインがあり、これはDependencies Version Checkerと呼ばれ、そのソースはGitHubにあります

組み込みのインターフェース([設定]> [プラグイン]> [リポジトリの参照...])から追加できます。

ネイティブインターフェース内の外観

インストールして再起動すると、UIに次のタブが表示されます。

再起動後に表示される新しいUIタブ。

次に、該当するものbuild.gradleをVersionCheckerパネルの左側に貼り付け、Version Checkボタンを押します。結果は、右側に表示されるテーブルで、貼り付けられたスクリプトで使用されているライブラリの最新バージョンが含まれています(上の画像を参照)。


これが私が最初に探していたものであったとしても、期待どおりに機能しません。Githubリポジトリで問題を公開しました。github.com/takuaraki/DependenciesVersionChecker/issues/5
osrl

私はこれを試してみましたが、私は「チェックのバージョン」をクリックしたときに、一般的なエラー/失敗メッセージバルーンを得た
グレッグ・エニスの

@GregEnnisプラグインの最新バージョンに問題があります。古いものを使用するか、更新を待つ...
Dev-iL

11

[ファイル]> [プロジェクトの構造]を参照し、[提案]をクリックします。このソリューションはHemant SharmaとJeremíasGersicichによって提案されましたが、Android Studioでは3.4.1バージョンで変更されています。

ここに画像の説明を入力してください


Android Studio 3.5でこの画面が表示されない人はいますか?
Nicola Beghin

@NicolaBeghin、私は空のプロジェクトをチェックし、4つの提案を得ました。はい、提案が表示されない期間が7月にありましたが、彼らはこのバグを修正しました。たぶんそれはグーグルサーバーの問題だと思います。
CoolMind

サポートしていませんGradle KTS
Vlad

2

サポートライブラリ(com.android.support)の依存関係には、より良いオプションがあります- -andle

jcenterとmavenセンターにもクエリを実行できます。

すべてのプロジェクトを一度に更新する簡単な3つのステップ。

1.インストール:

    $ sudo pip install andle

2. SDKを設定します。

    $ andle setsdk -p <sdk_path>

3.依存関係を更新します。

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

--dryrun:コンソールに結果のみを出力します

--remote:jcenterとmavenCentralでバージョンを確認します

--gradle:gradleのバージョンを確認

詳細については、https://github.com/Jintin/andleを参照してください


サポートライブラリのみですか?
osrl 2015年

@osrl --remoteまたは-rを追加すると、jcenterのバージョンが解析されます。
ジンティン2015年

0

私はこれと同じ問題を扱っていて、答えを試しました https://stackoverflow.com/a/35371234/6412430

Android Studio 3.4.1で実際に機能したのは次のとおりです。

File -> Project Structure -> Dependencies

この時点に達すると、プロジェクトまたはモジュールに含まれているすべての依存関係が一覧表示されます。古くなっているものには下線が引かれ、1つを選択すると、その詳細が表示され、変数(宣言から分離されている場合)または依存関係を更新するオプションが示されます。

最近のことですが、これが私にとってはうまくいきました。


私もこの方法を見つけました。誰かがマイナスをマークしたのは奇妙です。
CoolMind

-1

プロジェクトの依存関係を更新または推奨するには、androidプロジェクトと同じにする必要があります

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

依存関係タブにアクセスしたら+、ウィンドウの右上隅にあるボタンをクリックします。+[選択]をクリック Library DependencyするとChoose Library Dependency、検索ボックスに依存関係を検索するための新しいウィンドウが開き、リストされているすべてのAndroid依存関係が更新されます。


おかげで、このリストには私が使用しないライブラリも含まれており、使用するライブラリが含まれていない場合もあります。また、Gsonはcom.google.code.gson:gson:2.2.4実際にはそうですcom.google.code.gson:gson:2.8.5
CoolMind

依存関係は互換性のあるGradleバージョンで動作することがあります。プロジェクトレベルのGradleで更新されたGradleを使用しているかどうかを確認してください
Hemant Sharma
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.