升级至Android Studio Gradle版本0.5.0时出现问题 - 从0.8迁移到0.9 - 同时升级Android Studio至0.8.1

28

升级后的消息状态为:

Failed to refresh Gradle project 'XXX'
The project is using an unsupported version of the Android Gradle plug-in (0.8.3).
Version 0.9.0 introduced incompatible changes in the build language.
Please read the migration guide to learn how to update your project.

升级到Android Studio版本>=0.8.0后出现了同样的问题。

8个回答

61

Android Studio 0.5.0需要使用gradle-plugin 0.9.0

Gradle插件0.9.0 可与 Gradle 1.10或Gradle 1.11配合使用。

请按照Cedric的建议修改您的 build.gradle 脚本。

gradle-plugin与gradle版本存在关联关系。例如:

更新至2015年11月27日:

com.android.tools.build:gradle:0.6.+   -> gradle 1.8
com.android.tools.build:gradle:0.7.+   -> gradle 1.9
com.android.tools.build:gradle:0.8.+   -> gradle 1.9/1.10
com.android.tools.build:gradle:0.9.+   -> gradle 1.10/1.11
com.android.tools.build:gradle:0.10.+  -> gradle 1.10/1.11/1.12
com.android.tools.build:gradle:0.11.+  -> gradle 1.10/1.11/1.12
com.android.tools.build:gradle:0.12.+  -> gradle 1.10/1.11/1.12
com.android.tools.build:gradle:0.13.+  -> gradle 2.1
com.android.tools.build:gradle:0.14.+  -> gradle 2.1
com.android.tools.build:gradle:1.0.+   -> gradle 2.2.1-2.3
com.android.tools.build:gradle:1.1.+   -> gradle 2.2.1-2.3
com.android.tools.build:gradle:1.2.+   -> gradle 2.2.1+
com.android.tools.build:gradle:1.3.+   -> gradle 2.2.1+
com.android.tools.build:gradle:1.3.+   -> gradle 2.2.1+
com.android.tools.build:gradle:1.5.+   -> gradle 2.2.1+
com.android.tools.build:gradle:2.0.+   -> gradle 2.10.0+

你可以在文件 gradle/wrapper/gradle-wrapper.properties 中找到项目中使用的 Gradle 版本。

同时,Gradle 插件与 IDE 版本之间存在关联。

Android Studio 0.3.x  -> gradle-plugin 0.6
Android Studio 0.4.x  -> gradle-plugin 0.7
Android Studio 0.4.3+ -> gradle-plugin 0.8
Android Studio 0.5.x  -> gradle-plugin 0.9
Android Studio 0.5.8  -> gradle-plugin 0.9.+ or 0.10.+
Android Studio 0.5.9  -> gradle-plugin 0.9.+ or 0.10.4+
Android Studio 0.6.x  -> gradle-plugin 0.11.+
Android Studio 0.8.x  -> gradle-plugin 0.12.+
Android Studio 0.8.11+  -> gradle-plugin 0.13.+ / gradle-plugin 0.12.+
Android Studio 0.9.x  -> gradle-plugin 0.14.+
Android Studio 1.0.0  -> gradle-plugin 1.0.0
Android Studio 1.1.x  -> gradle-plugin 1.0.0/ 1.1.x / 1.2.x
Android Studio 1.2.x  -> gradle-plugin 1.0.0/ 1.1.x / 1.2.x
Android Studio 1.3.x  -> gradle-plugin 1.0.0/ 1.1.x / 1.2.x / 1.3.x 
Android Studio 1.4.x  -> gradle-plugin 1.0.0/ 1.1.x / 1.2.x / 1.3.x 
Android Studio 1.5.x  -> gradle-plugin 1.0.0/ 1.1.x / 1.2.x / 1.3.x / 1.5.x
Android Studio 2.0.x  -> gradle-plugin 2.0.0

 Also gradle 1.12 requires Android Studio 0.5.8+

要获取最新消息,请查看此链接:http://tools.android.com/recent
有关Gradle插件的更新文档,请在此处查看

如果更改插件版本,请检查兼容性,然后单击“使用Gradle文件同步项目”。如果需要新的插件版本,它将会下载。


6
谢谢您列出这些关系!我一直在搜索,非常惊讶地发现我没有找到在http://www.gradle.org/ 或 http://developer.android.com/ 上简洁呈现此信息。考虑到我们看到的关于版本不匹配的问题的数量,我很惊讶为什么这些网站之一没有将这些信息放在首要位置! - Sound Conception
谢谢你的解释,但我在使用Gradle 2.0时遇到了问题。我使用的是0.12.+版本,但一直出现错误提示“请使用1.10版本”。我找不到为什么会要求使用1.10版本! - Nabdreas
据我的经验,@Kangars 0.12不支持Gradle 2.0。 - Gabriele Mariotti
Gabriele Marriotti,这可能就是它抱怨的原因。我提出了一个问题,但看起来情况确实如此!https://dev59.com/82Af5IYBdhLWcg3wyVB1 - Nabdreas
谢谢,这非常有帮助。我正在使用最新的工作室和版本,并在我的Gradle包装器中使用以下内容: distributionUrl=http://services.gradle.org/distributions/gradle-1.12-all.zip - mattdlockyer
谢谢,这帮助我在升级AS后得到了项目文件。我使用的是AS 0.8.9,所以我在build.gradle中更新了我的项目,使用了gradle-plugin 0.12.2gradle-wrapper.properties中的gradle 1.12。每次升级Android Studio后,我都必须在打开旧项目时与Gradle搏斗,这并没有被明确记录,我不理解。 - Barry Staes

42

要解决此问题,请在项目根目录中打开名为build.gradle的文件,然后将其中的gradle版本更改为0.9.+。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}

每个项目都要重复执行 ;(

如果你收到了如下消息:“无法加载类 'org.gradle.api.artifacts.result.ResolvedComponentResult”。

请前往你的 project_folder/gradle/wrapper 目录并编辑 Unable to load class 'org.gradle.api.artifacts.result.ResolvedComponentResult'. 文件,将 distributionUrl 更改为

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

升级到版本0.8.1后(完整下载并将SDK文件夹复制过去),必须通过IDE使用“修复”链接安装新版本的gradle,并将项目文件夹中gradle文件的“android”部分从19.0修改为19.1,如下所示:

buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.12.+'
        }
    }
    apply plugin: 'android'
repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.1.+'
    compile 'com.android.support:support-v4:19.1.0'
}

做得很好。我只需要更改distributionURL。 - Hackmodford
很奇怪,将 classpathcom.android.tools.build:gradle:0.9.+ 更改为 com.android.tools.build:gradle:0.9.0 解决了我的 Gradle 同步问题。不确定为什么,或者这是否是巧合。 - theblang
关闭您的项目并重新导入相同的项目,它会被Android Studio 0.5.1自动修复。 - codercat

4
我遇到了同样的错误,但是已经有了相应的解决方法。
classpath 'com.android.tools.build:gradle:0.9.+'

按照Cedric Simon的建议进行设置。

感谢mattblang的评论,我尝试将其更改为0.9.0并刷新页面。

对于那些不知道如何找到刷新按钮的人,请看下面:

enter image description here

之后,我尝试将其变回0.9.+并再次刷新...它仍然有效。

因此,我认为只需按下刷新按钮就足够了。


2

我也遇到了在将gradle版本迁移到1.0.0时的同样问题..这个解决方案帮了我并且节约了时间..

更新插件和Gradle版本号

Android Gradle插件版本通常列在项目的顶层build.gradle文件中,并可按如下方式进行更新:

假设我有版本0.8.. 我的build.gradle(项目根目录/build.gradle)显示

dependencies { classpath 'com.android.tools.build:gradle:0.8.+' }

删除旧版本(0.8),添加新版本1.0.0,像这样

dependencies { classpath 'com.android.tools.build:gradle:1.0.0' }

同时还要更改gradle/wrapper/gradle-wrapper.properties:

删除旧的distributionUrl并添加新的url

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

并在项目根目录/app/build.gradle中更改runProguard

之前:

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

之后:

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

更多信息: 迁移到gradle项目(点击这里)


0

最简单的Android项目具有以下build.gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.0'
    }
}

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"
}

这个Android构建文件有三个主要区域:

新构建系统用户指南


0

Android Studio版本1.0.2 IDE版本和构建版本之间过于紧密耦合的想法是不好的。

Android Studio 1.0.2. Gralde插件1.0.+ gradle.properties,分发URL=http://services.gradle.org/distributions/gradle-2.2.1-bin.zip


0

当我升级到Android Studio 1.0时,我发现我需要更新到使用gradle的1.0.0版本。

我曾经

  dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0-rc2'

我把它改成了去掉“-rc2”

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

-1

嗯,当我尝试添加这个依赖项时,出现了以下错误。

错误:(22)评估项目“:app”时发生问题。

在项目“:app”上找不到方法classpath()的参数[com.android.tools.build:gradle:0.9.+]

好的,问题解决了。如上所述,这行代码应该是“在项目根目录下”的build.gradle文件的一部分,但我没有意识到。将构建工具更新为19.03实际上会自动插入它。


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