如何在Android Studio中使用最新版本的Gradle

44

我刚刚注意到Gradle已经发布了2.12版本,根据发行说明,脚本编译速度可以提高20%。我想在Android Studio中升级到该版本。

我正在使用v1.5.1,在设置中我选择了“使用默认Gradle包装器”选项,这意味着每个项目不会使用本地Gradle安装程序,而是为每个项目使用特定的Gradle版本。所使用的版本是在build.gradle文件中定义的。例如:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
现在,如果我将它更改为这样:
classpath 'com.android.tools.build:gradle:2.12'

然后,Android Studio找不到那个版本并抛出错误。显然AS首先尝试在本地缓存(Android Studio/gradle/m2repository)中查找二进制文件,然后再尝试从bintray下载:

https://jcenter.bintray.com/com/android/tools/build/gradle/2.12/gradle-2.12.jar

浏览已发布的构建版本,看起来这里最新的版本是v2.1.0-alpha1。

  • 为什么v2.12还没有出现在Bintray上?它和Android Studio不兼容吗?
  • 如果它能兼容,是否有一种方法可以下载并在每个项目中使用本地安装?(我不想破坏已经在版本控制中的旧项目)

请查看此更新答案 - Amit Vaghela
这里找到将在gradle-wrapper.properties中使用的最新版本Gradle。 - hassan moradnezhad
5个回答

49

com.android.tools.build:gradle 是 Android 中用于 Gradle 的插件,它与 Gradle 分发版本不同。有关 Gradle Android 插件的发布/版本信息,请参见此处:https://maven.google.com/web/index.html?q=gradle#com.android.tools.build:gradle

要更改插件使用的 Gradle 版本,请编辑文件:

<Project>/gradle/wrapper/gradle-wrapper.properties

并将此行更改为您想要的Gradle版本:

distributionUrl=http\://services.gradle.org/distributions/gradle-2.12-all.zip

接着重新构建您的项目。

请注意,您使用的android插件版本可能未与这个全新的gradle版本进行测试,并且可能会导致意外问题。


截至2020年2月的android gradle插件与Gradle版本兼容性信息

Plugin version      Required Gradle version
--                  --
1.0.0 - 1.1.3       2.2.1 - 2.3
1.2.0 - 1.3.1       2.2.1 - 2.9
1.5.0               2.2.1 - 2.13
2.0.0 - 2.1.2       2.10 - 2.13
2.1.3 - 2.2.3       2.14.1+
2.3.0+              3.3+
3.0.0+              4.1+
3.1.0+              4.4+
3.2.0 - 3.2.1       4.6+
3.3.0 - 3.3.2       4.10.1+
3.4.0 - 3.4.1       5.1.1+
3.5.0 - 3.5.3       6.0.1+
3.6.0+              6.0.1+

2
有没有办法知道哪些Gradle版本与插件兼容?我在您提供的页面上没有看到任何信息。 - Mister Smith
2
好的,他们确实告诉你在插件发布说明中使用的最低Gradle版本。对于1.5.0版本,最低Gradle版本显然是2.2.1。他们没有明确说明在什么程度上会出现问题。请参见此处:http://developer.android.com/tools/revisions/gradle-plugin.html 还请参阅此处的“Gradle要求”部分:http://tools.android.com/tech-docs/new-build-system/gradle-experimental - RaGe
1
Bintray已经关闭。 - IgorGanapolsky

34

对于AS 2

最新的插件是:

下载

classpath 'com.android.tools.build:gradle:[INSERT LATEST HERE]'

针对AS 3

您应该更新存储库以包括google(), 您还需要使用 gradle > 4.1,并且最新版本在这里:

https://developer.android.com/studio/releases/gradle-plugin.html

撰写此文时,最新版本为:

buildscript {
    repositories {
        // Gradle 4.1 and higher include support for Google's Maven repo using
        // the google() method. And you need to include this repo to download
        // Android plugin 3.0.0 or higher.
        google()
        ...
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
    }
}

8
好的!比起12年前的帖子,这篇文章好多了。 - behelit
你确定吗?该图片当前显示的是“2.3.3”,而https://developer.android.com/studio/releases/gradle-plugin.html包含文本`classpath 'com.android.tools.build:gradle:3.0.1'`。 - Don Hatch
1
他们已经开始使用自己的Maven仓库了...我会看看我能做些什么。 - weston
@weston 你知道是否可以在Android Studio中使用比它所附带的版本更新的Gradle版本吗?例如,我尝试将Gradle 5.0与AS 3.2一起使用,但同步失败,并出现了不清晰的错误/异常。或者说Android Studio只能与旧版本一起使用?我找不到任何证实这一点的文档。 - Zingam
@Zingam 我会先在命令行上测试一下,例如:'./gradlew assembleDebug'。我预计你会看到完全相同的错误。 - weston

3
除了更改distributionURL之外,对我有用的是在build.gradle(Modile:app)中保持我的类路径为2.0.0:
classpath 'com.android.tools.build:gradle:2.0.0'

在 文件 > 项目结构 > 项目 中,将 'Gradle版本' 更改为2.12

在 文件 > 设置 > 构建、执行、部署 > 构建工具 > Gradle 中: 在 '项目级别设置' 部分,有两个选项:

  1. 使用默认的gradle wrapper(推荐)

  2. http://gradle.org/post-download-gradle/下载 gradle-2.12-all.zip, 然后选择 '使用本地gradle发行版' 并映射 'Gradle home:',即 C:/Gradle/gradle-2.12

请注意,选项2将需要您下载每个gradle版本更新。


2
尝试这个: 根据gradle-wrapper.properties中的最新版本更改此url,然后更改gradle。
   distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-all.zip

希望这有所帮助。谢谢。

2

如果您想使用最新的gradle版本,就不能使用默认的gradle包装器。您需要进入设置,勾选“使用可定制的gradle包装器”,然后更改

Project/gradle/wrapper/gradle-wrapper.properties

distributionUrl

distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-bin.zip

Gradle Settings


我有点迷失了。在Gradle设置中,我看不到任何“使用可定制的Gradle包装器”的选项。你是不是指“使用本地Gradle分发”? - Mister Smith
不,我截了图,它在那里。 - OneCricketeer
你必须使用 AS 2 beta。我还在用 1.5.1。 - Mister Smith
实际上只是使用了普通的IntelliJ。 - OneCricketeer
1
所以这个选项使用自定义的Gradle版本,但仅适用于该项目,对吗? - Mister Smith

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