更新到3.0后Gradle构建失败


71

我最近将我的项目的gradle版本从2.14.1更新到了3.0。从那时起,gradle构建每次都会因以下错误而失败:

错误:原因:org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection无法转换为org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection导致此意外错误的可能原因包括:

  • Gradle的依赖项缓存可能已损坏(这有时会在网络连接超时后发生。)重新下载依赖项并同步项目(需要网络)
  • Gradle构建过程(守护程序)的状态可能已损坏。停止所有Gradle守护程序可以解决此问题。停止Gradle构建过程(需要重新启动)
  • 您的项目可能使用的第三方插件与该项目中的其他插件或该项目要求的Gradle版本不兼容。
如果Gradle进程损坏,您也可以尝试关闭IDE,然后终止所有Java进程。

我搜索谷歌和发现了一些解决方案,如一个,但没有什么工作。有谁知道如何修理它?


您正在使用哪个版本的插件?
加布里埃里奥·马里奥蒂

1
最新的稳定gradle插件(2.1.3)与[Gradle 2.14.1或更高版本] [1]兼容,但不支持Gradle3.x。[1]:developer.android.com/studio/releases/gradle-plugin.html
Gabriele Mariotti

2
它说Gradle 2.14.1或更高版本并没有真正排除3.x版本?
Drilon Blakqori,2016年

您可以尝试使用最新的Beta版本:2.2.0-beta2,但我不知道是否支持该版本。
加布里埃里奥·马里奥蒂

Answers:


81

将您的Gradle构建工具升级到最新版本。

一种简单的方法是将最新版本的构建工具作为依赖项添加到build.gradle文件中,例如:

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-beta1'
}

然后gradle tasks,您可以运行,并且gradle将下载您需要的所有内容。

在2016年9月19日发布Android Studio 2.2稳定版之后,构建工具的最新版本为2.2.0。因此,您可以通过以下方式修复它:

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

由于Android Studio 2.4稳定版尚未准备好发布(2017年5月4日),因此构建工具的最新稳定版为2.3.1。

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

如果将此构建工具版本更新为2.3。*,则还应该在/yourProjectRoot/gradle/wrapper/gradle-wrapper.properties文件中将gradle包装器版本更新为3.3。(我知道这不匹配问题Gradle build failing after update to 3.0,但我强烈建议您使用Google推荐的最新构建工具)

顺便说一句:构建工具的版本2.3.1仅存在于jCenter上,而不存在于MavenCentral上,因此如果在终端中运行gradlew命令行时遇到以下错误

Could not find com.android.tools.build:gradle:2.3.1.
 Searched in the following locations:
     https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.3.1/gradle-2.3.1.pom
     https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.3.1/gradle-2.3.1.jar

只需将mavenCentral()替换为jcenter()即可

 repositories {
    jcenter()
    //mavenCentral()
}



4

好吧,我知道了。对于面临相同问题的任何人,它的工作方式如下:

  1. 转到您的外部.gradle文件夹(对我来说是C:\ Users \ drilon.gradle)。在缓存和守护程序文件夹中,删除所有版本文件夹(它们看起来像“ 2.14.1”或“ 3.0”)。也转到包装器-> dists->删除那里的所有内容。
  2. 在您的项目根目录(对我来说是C:\ Users \ drilon \ AndroidStudioProjects \ PorjectName)中,转到.gradle文件夹并删除其中的所有内容。
  3. 重建项目

编辑:
原来此解决方案将gradle版本设置回2.14.1。end0421的解决方案是可行的解决方案。


这对我没有用。我必须使用LinuxArtisan提供的解决方案。(升级到com.android.tools.build:gradle:2.2.0-beta1)
cbeaudin

3

对于Android Studio 3.3.1的最新更新,以下代码适用。

1)gradle-wrapper.properties添加到下面的行中。

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

2)在项目级别的build.gradle中添加以下类路径

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

    }

添加上述代码后,gradle同步代码将像魅力一样工作。
satyawan hajare

1

如果您的gradle版本是:3.0.1,则在gradle-wrapper.properties中使用以下代码 distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

如果3.1.2,则在gradle-wrapper.properties中使用以下代码 distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip


1
    After 1 hour R&D No Solution as worked for me...

    But still i have solution follow this its work 100%

    step 1: upgrade your build.gradle(Project:<your project name>)
    Example :  classpath 'com.android.tools.build:gradle:2.1.3' // old gradle file
               classpath 'com.android.tools.build:gradle:2.3.1' // upgraded file 

                                OR
               classpath 'com.android.tools.build:gradle:3.1.0'

    Step 2 : Upgrade compileSdkVersion buildToolsVersion 
    Example : compileSdkVersion 23    buildToolsVersion "23.0.3 // old api's
              compileSdkVersion 25    buildToolsVersion "25.0.2" // upgraded api's

   Step 3:  upgrade gradle-wrapper.properties 
   Example : distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip // old or any version
            distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip // new or any version

步骤4:最终转到build> rebuild project ...

仍然您在提交或收件箱中遇到一些问题。

......结束@Ambilpura


1

在更新之前,您应该检查Gradle插件版本和Gradle版本

在您的项目级别build.gradle文件中检查Gradle插件版本-

buildscript {
    
    repositories {
        google()

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

在您的gradle-wrapper.properties-中检查Gradle版本-

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

在回答此问题时,以下是最新版本。您可以在此页面上匹配您的版本。

gradleversion


0

只需删除主项目文件夹中gradle文件夹内的所有内容,然后重建项目即可。它将开始工作。


0

如果您的gradle插件3.0.0适用于Studio 3.0版,请将其添加到gradle-wrapper.properties中

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

0

简单的答案试试这个...

转到build.gradle(PROJECT)并检查gradle版本,如下所示

'com.android.tools.build:gradle:2.1.3'或3.0或3.1或xx.xx

现在打开gradle-wrapper.properties,如果gradle版本是2.x,请参见以下代码。

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

gradle-2.14.1-all.zip代码行必须与gradle版本相同

例:

例如:我的是2.x,所以... build.gradle中的类路径'com.android.tools.build:gradle:2.1.3'因此

gradle-wrapper.properties中的distributionUrl = https://services.gradle.org/distributions/gradle-2.14.1-all.zip。

如果gradle版本是3.x,则build.gradle中的类路径'com.android.tools.build:gradle:3.1.0'然后

gradle-wrapper.properties中的distributionUrl = https://services.gradle.org/distributions/gradle-3.14.1-all.zip。

检查它会起作用


0

如果Android Studio下面的代码适用于Android Studio 3.0。

gradle-wrapper.properties添加以下行。

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

如果Android Studio Android Studio 3.1.2以下代码正常工作。

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

如果Android Studio 3.3.1以下代码正常工作。

1)gradle-wrapper.properties添加到下面的行中。

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

2)在项目级别的build.gradle中添加以下内容

 dependencies { 
             classpath 'com.android.tools.build:gradle:3.1.0'
 }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.