Gradle要求使用1.10版本,当前版本为2.0。

80

我试图使用最新的Gradle版本(2.0),但每当在终端中输入gradle build时,就会出现这个消息。为什么要求版本1.10?我对Gradle还很陌生,所以正在尝试理解它。

需要Gradle版本1.10。当前版本是2.0

这是我的依赖项(模块build.gradle文件):

dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    classpath fileTree(dir: 'build-libs', include: '*.jar')
}

...还有包装任务:

task wrapper(type: Wrapper) {
    gradleVersion = "2.0"
}

另外,我已将分发URL设置为以下内容(在local.properties文件中):

distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-all.zip

最后一件事是,在文件->设置->Gradle中,我选择了“使用可自定义的gradle wrapper”。

GRADLE_HOME已设置为C:\Program Files(x86)\Gradle\gradle-2.0

build.gradle文件:

buildscript {

    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
        classpath fileTree(dir: 'build-libs', include: '*.jar')
    }
}


task wrapper(type: Wrapper) {
    gradleVersion = "2.0"
}

更新1

目前我正在使用 Android Studio 1.1.0 版本,并搭载了 1.1.0-rc1 插件版本。

    dependencies {
    classpath 'com.android.tools.build:gradle:1.1.0-rc1'
}

gradle-wrapper.properties 中 Gradle 版本为 2.3。

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

我尝试了1.1.0版本的插件,但它抱怨com.android.application

更新于2016年01月

目前,我在gradle -> wrapper -> gradle-wrapper.properties中使用gradle 2.9发行版。

distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-all.zip

并且插件是

classpath 'com.android.tools.build:gradle:1.5.0'

没有运用2.0版本的好运,我现在一直在使用1.12版本。如果我找到解决方案,我一定会发布出来!一个可能有帮助的方法是删除C:/User中的.gradle文件夹。我不得不这样做才能让1.12版本正常工作。 - Nabdreas
如果有帮助的话,目前我正在使用Gradle 2.2.1、Plugin 1.0.1和AS版本1.1 Preview 2。一切都没有问题。 - Nabdreas
你找到解决这个问题的方法了吗?我也遇到了同样的问题,但是找不到解决办法。 - user2273146
@user2273146 我尝试了一下Gradle插件版本和Gradle(查看Lucas提供的表格)。你可能还想删除/user目录或项目文件夹中的.gradle文件夹,检查gradle.wrapper.properties中的distributionURL。可以尝试结合我上面两条评论中提到的方式。 - Nabdreas
@Kangars 你救了我!谢谢 :) - iceone213
显示剩余3条评论
8个回答

66

63
说实话,当插件无法使用最新版本的Gradle时,这表明该插件有多么愚蠢。谷歌,你认真点吧?听起来像是微软几十年前经历的DLL地狱。赶紧跟上步伐吧,谷歌。 - Johann
5
天啊,这太蠢了,也太烦人了。每次同步时,Android Studio 都会自动将我的版本降级,我目前使用的版本是0.14.4和Gradle 2.2,但它只能识别Gradle 2.1。有谁知道如何禁用这个检查吗? - Bob
2
@Bob 尝试使用 gradle 2.2.1,我将 gradle 更改为 2.2,插件更改为 0.14.4,它要求使用 gradle 2.1,但将其更改为 2.2.1 可以解决问题。 - Nabdreas
2
对于Android Studio 1.0.1呢? - Sauron
2
@Sauron 你可以在插件中使用 1.0.+,而在 Gradle 中使用 2.2.1 - Gustavo Barbosa
显示剩余3条评论

64

信息: "需要Gradle版本1.10。当前版本为2.0"

出现情况: 试图构建一个Android项目,该项目要求使用Gradle 1.10版本,而您在本地使用的是2.0版本。

解决方法: 使用Gradle Wrapper

步骤:

  1. 确保在Android项目中的Gradle-wrapper属性文件中指定了distributionUrlgradle-1.10-all.zip。文件路径如下:

    MyAndroidProject/gradle/wrapper/gradle-wrapper.properties

  2. 在项目的顶级目录(即可执行脚本所在的位置,例如gradlewgradlew.bat)运行Gradle Wrapper命令。

    对于类Unix操作系统

    ./gradlew wrapper

    对于Windows操作系统

    gradlew.bat wrapper

  3. 使用Gradle Wrapper运行构建命令。

    对于类Unix操作系统

    ./gradlew build

    对于Windows操作系统

    gradlew.bat build


1
这对我有用。在做这个的时候,我不得不安装JDK并遵循 https://dev59.com/-uo6XIcBkEYKwwoYNBZQ 的帖子。 - chank
1
我的distributionUrl设置为最新版本,但我机器上的gradle版本不是最新的,这让我很疯狂。在Android Studio中进行gradle同步也没有任何作用!在终端中运行“./gradlew wrapper”正是我所需要的,可惜Google没有让这更容易/更明显... - AndroidNoob

16

我在build.gradle文件中更新gradle版本来解决问题:

dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'

这解决了我的问题。希望对你也有帮助。


3
使用Gradle 2.1版本,您需要添加以下依赖项:dependencies { classpath 'com.android.tools.build:gradle:0.13.+' } - Peter Szanto
1
是的,你说得对,但是使用Gradle 2.1时,我想使用“dependencies { classpath 'com.android.tools.build:gradle:0.13.2' }”,如果不在末尾使用.+更好。 - Mr.Moustard
什么时候起作用的:依赖项 { classpath 'com.android.tools.build:gradle:0.13.2' } 我通过将'com.android.tools.build:gradle:0.12.+'替换掉来解决了我的问题。奇怪的是,我认为原始版本应该是'com.android.tools.build:gradle:0.13.2'。 - sweetiewill
1
如果你正在使用 Gradle 2.1.1,那么你应该指定 classpath 'com.android.tools.build:gradle:0.14.+'。 - Claudia Mardegan

5

看起来当前版本的Android Gradle插件(0.12.2)只能与不晚于1.12版本的Gradle一起使用。

我在Tools网站上没有找到直接说明,只有这个短语:

Gradle 1.10或1.11或1.12与插件0.11.1一起使用。

但是,我手动测试了Gradle 2.0和1.2,它们都无法工作,因此我认为这个限制仍然适用于Android Gradle插件0.12.2。

我建议通过在gradle-wrapper.properties文件中设置distributionUrl = http://services.gradle.org/distributions/gradle-1.12-bin.zip来回退到Gradle 1.12。

然后像往常一样使用gradlew即可。


4

Android插件需要特定版本的Gradle,最新的Android插件版本需要1.12,您构建中声明的Android插件版本需要1.10。


2
这并不完全正确。最后一个 Android 插件是 0.11.1,适用于 Gradle 1.10-1.11-1.12。 - Gabriele Mariotti
是的,我现在可能需要使用Gradle 1.12而不是2.0-rc-1。我的插件是0.11.+,我将尝试使用1.12。 - Nabdreas

2

我按照wono在mac上的方法进行操作,但是出现了“gradlew命令未找到”的错误。通过改变gradlew文件的mod来解决了这个问题。

chmod +x gradlew

希望这能帮助其他人。


0
如果您在将旧版Android Studio开发的项目移植到新版Android Studio时遇到了此问题,那么只需在新版Android Studio中创建新项目,并与新项目中的gradle相关文件进行交叉检查即可解决。

0

如果上述修复方法无效,请尝试以下方法

您需要更改build.gradle中的此行

classpath 'com.android.tools.build:gradle:0.9.+'

classpath 'com.android.tools.build:gradle:1.1.+'

你需要在你的build.gradle文件中修改这一行

buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

buildTypes {
        release {
             minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

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