如何在Gradle中检查要使用的依赖项的最新版本

32

我通常是这样添加依赖的:

dependencies {
    compile 'com.android.support:mediarouter-v7:19.+'
}

但在最近的Android Studio版本中,他们建议不要使用+,因为它可能会导致错误。如何知道最新的版本?我可以尝试19.y.x的每个组合,直到Gradle抱怨,但有没有更好的方法来检查?

编辑:有时,该网页可以帮助我找出答案。

8个回答

40

可能有其他方法,但这是我使用的方法:

您可以使用Android Studio通过在build.gradle编译行中替换库版本号为+,并点击窗口右上角的Sync Now来查找最新版本。

例如,在您的情况下

dependencies { compile 'com.android.support:mediarouter-v7:+' }

Android Studio将弹出提示/气泡,其中包含选项Replace with specific version,您可以单击它,在+位置填入最新版本。请参见下面的屏幕截图:

android studio hint

如果第一次不起作用,请让gradle完成其同步,并重试(用+替换+或进行任何文件修改都可以,再次单击同步现在并提示气泡将显示)。

例如,对于您的库,我只需在我的依赖项下粘贴此行compile 'com.android.support:mediarouter-v7:+',然后按照上述过程操作,Android Studio将以下版本填充到该位置。

.


1
它使用v7:19.1.0自动完成,但是如果我手动输入v7:19.9.0,它也可以工作(编译和运行)。 - mbmc
如果我使用 19.9.0,就会报错,但使用 19.1.0 则运行正常。请查看此链接(http://i.imgur.com/3BZkmbi.png)。我点击了安装库链接,但仍然出现错误。如果使用 19.1.0,则问题消失了。 - ashoke
很奇怪...你用的AS版本是什么?我用的是0.8.9。我可以放置任何19.x.y,它都可以工作。20.0.0也可以工作,但20.0.1会给我和你一样的错误。 - mbmc
我正在使用最新的AS 0.8.11。一旦我下载了最新的支持库,+技巧也会自动补全到20.0.0。气泡提示将自动选择最新/正确的版本,并且不会再出现你在问题中提到的警告信息。 - ashoke

14

仅依赖最新版本确实是一件危险的事情。你的编译可能会出现问题,即使你没有更改任何内容,只因为某个库破坏了向后兼容性。

了解库的新版本是否发布最简单的方法是订阅 Bintray 的新版本通知。

只需在包页面上点击“Watch”按钮,每次有新版本发布时,您将收到电子邮件通知。然后您可以更新依赖项,测试它,然后才能提交新版本的构建脚本。

Watch package in Bintray


2
它随着SDK一起提供,所以我不确定它有什么问题?你只需要最新的SDK,并查看libs文件夹中的jar文件。它不会在你不知情的情况下“惊喜”地推出新版本。为什么需要一个特殊的工具来找出最新版本呢? - JBaruch
从SDK附带的libs / jars中,如何判断使用哪个版本? - mbmc
只需查看JAR文件名即可? - JBaruch
sdk/extras/android/support/v7/mediarouter/libs/android-support-v7-mediarouter.jar - mbmc
1
我认为这是最棒的方式。我找到了另一个不错的库(一个扩展我使用的库的项目!),可以“观察”我想要的东西。 - Sufian
显示剩余4条评论

5
正如其他答案所提到的,您不应在依赖项中使用+,因为它可能会导致生成不可预测,因此最好在新更新可用时首先测试构建。

使用Android Studio 2.2及以上版本,Project Structure将显示最新的依赖项。

  1. 通过转到Android Studio >设置>构建,执行,部署> Gradle>实验室并检查使用新项目结构对话框来激活它
  2. 然后通过转到文件>项目结构> Image showing updates dialogMessages打开它

原始答案


2
似乎在Android Studio 3.1 Canary 5上消失了,有人可以确认吗? - Derek Zhu

2

最近,我发现了这个。

进入文件->项目结构

选择你想要添加依赖项的模块

转到依赖项选项卡

单击+并选择库依赖项

从列表中选择所需的任何库。

(还有一个搜索选项,但我从未尝试过。)

就是这样。

完成。

谢谢。


IMO最佳解决方案。不需要任何插件。适用于最新的Android Studio Flamingo和libs.versions.toml。 - Karol

1

0

避免在版本声明中使用 +。

您可以尝试 andle 检查依赖项是否过时,还可以检查构建工具版本和 SDK 版本。

简单的三个步骤:

1. 安装:

    $ sudo pip install andle

2. 设置 SDK:

    $ andle setsdk -p <sdk_path>

3. 更新依赖项:

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

--dryrun:仅在控制台中打印结果

--remote:检查jcenter和mavenCentral中的版本


0

如果你想要最新版本,Ashoke的答案是正确的。

但是,如果你只想用你目前正在使用的版本替换“+”(从而保护自己免受未来更新中的错误影响),则:

例如:

 compile 'com.android.support:appcompat-v7:21.0.+'

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

(但不使用23.0.1)

这是最简单的方法,无需软件:

运行

$ ./gradlew clean tasks --debug > ~/whatever.txt

然后寻找"com.android.support:appcompat-v7:21.0."。
在下面几行中,你会看到
"从Maven仓库使用com.android.support:appcompat-v7:21.0.3"。

0

如果它是来自Google的maven存储库的依赖项,现在最好的方法是前往https://maven.google.com,谷歌现在允许您浏览所有他们的库并查看所有可用版本,包括最新版本。它看起来像这样:

enter image description here

你甚至可以搜索特定的库,并根据需要展开/折叠它。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接