在Android Studio中,当我在版本号中使用+时,如下: com.android.support: recyclerview-v7:21。+ 我得到一个“避免在版本号中使用+”的警告。

但是当我使用特定的版本号时,我不能总是使用最新的版本。我的项目中有很多依赖项。

如何检查依赖项是否有更新的版本?

有一个Android Studio插件(或类似的东西)通知我,当有一个新的版本的依赖?

编辑: Android Studio突出了过时的Android支持库和谷歌播放服务。但这对其他自定义库不可用。


当前回答

这现在是内置到Android Studio作为一个Lint检查。你可以在这里启用它:

>编辑器>检查>“可用的较新的库版本”

本次检查说明:

可用的较新的库版本 此检测器检查中央存储库,以查看此项目使用的依赖项是否有更新的可用版本。这类似于GradleDependency检查,它检查Android SDK工具和库中可用的新版本,但这适用于任何MavenCentral依赖,并且每次都连接到库,这使得它更灵活,但也慢得多。

因为这会导致速度减慢,我建议定期手动运行它,而不是一直开着。你可以这样做:

分析>“按名称运行巡检”

然后搜索“可用的更新库版本”,并在您的模块上运行它。

编辑:以上内容应该只适用于Android Studio 2.3。如果您使用的是旧版本(您应该更新),以下内容可能会有所帮助:

请注意,似乎你必须启用检查才能手动运行它-所以(Android Studio 2.0 Beta 2)你需要在设置中找到检查,启用它,然后按名称运行它,然后再次禁用它(以恢复以前的性能)。

其他回答

你可以使用Gradle的refreshVersions。它生成一个java属性文件,告诉您可用的版本,并允许您更改所有依赖实例中的版本号。因此,只有在需要更改依赖项的版本时才编辑此文件。

java属性文件,versions。属性,看起来像这样。

参见文件>项目结构,点击“建议”。我知道,这个解决方案是由Hemant Sharma和Jeremías Gersicich提出的,但Android Studio在3.4.1版本中已经改变了它。

这在大多数情况下都有帮助,但有时库会更改它们的id(路径)。所以你有时应该访问他们的网站,看看为什么这些库没有更新这么长时间。然后手动更新。

这现在是内置到Android Studio作为一个Lint检查。你可以在这里启用它:

>编辑器>检查>“可用的较新的库版本”

本次检查说明:

可用的较新的库版本 此检测器检查中央存储库,以查看此项目使用的依赖项是否有更新的可用版本。这类似于GradleDependency检查,它检查Android SDK工具和库中可用的新版本,但这适用于任何MavenCentral依赖,并且每次都连接到库,这使得它更灵活,但也慢得多。

因为这会导致速度减慢,我建议定期手动运行它,而不是一直开着。你可以这样做:

分析>“按名称运行巡检”

然后搜索“可用的更新库版本”,并在您的模块上运行它。

编辑:以上内容应该只适用于Android Studio 2.3。如果您使用的是旧版本(您应该更新),以下内容可能会有所帮助:

请注意,似乎你必须启用检查才能手动运行它-所以(Android Studio 2.0 Beta 2)你需要在设置中找到检查,启用它,然后按名称运行它,然后再次禁用它(以恢复以前的性能)。

已弃用-见现代方式的公认答案

我下面介绍的工具不能在新版本的Android Studio / Gradle上工作,它的作者不再维护它(截至2016年10月30日)。因此,除非使用旧版本的Android Studio,否则应使用已接受的答案中提出的解决方案。


截至2016年1月,Android Studio有一个插件可以做类似的事情,称为依赖版本检查器,其源代码可以在GitHub上找到。

它可以通过内置接口添加(设置>插件>浏览库…):

安装并重新启动后,界面出现如下选项卡:

相关的构建。gradle应该被粘贴到VersionChecker面板的左边,然后按下版本检查按钮。结果是在右侧出现一个表,其中包括粘贴脚本中使用的库的最新版本(如上图所示)。

除了Android Studio的内置功能外,还有一个很好的gradle插件,叫做gradle Versions plugin,它完全可以满足你的需要,它的好处是简单的gradle扩展,这意味着不绑定到任何IDE——只是纯粹的gradle。

Gradle Versions Plugin可以创建人类可读的纯文本形式的报告,但也可以将其转储为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.marcinorlowski: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

请参阅文档以获得更多的用法示例。