更新到3.0后,Gradle构建失败

时间:2016-08-19 08:40:00

标签: android android-studio gradle android-gradle

我最近将项目的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进程。

我搜索了谷歌并找到了一些像this这样的解决方案,但没有任何效果。有谁知道如何解决它?

12 个答案:

答案 0 :(得分:79)

将您的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 stable尚未准备好发布(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,但我强烈建议您使用谷歌推荐的最新构建工具)

BTW:版本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

只需用jcenter()替换mavenCentral(),如

 repositories {
    jcenter()
    //mavenCentral()
}

答案 1 :(得分:25)

有关Android Studio 3.0的最新更新

gradle-wrapper.properties(文件名)中将distributionUrl的网址更改为以下内容:

  

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

答案 2 :(得分:8)

如果您使用gradle插件2.1.3, 解决起来很简单:

  

将您的gradle插件更新为2.2.0-beta1版本

注意:这是测试版,也许你可以得到任何其他问题。

https://discuss.gradle.org/t/classcastexception-in-gradle-nightly-3-0-20160609/17979

快乐编码:)

答案 3 :(得分:4)

好的,我让它运转了。对于任何面临同样问题的人来说,它的工作方式如下:

  1. 转到您的外部.gradle文件夹(对我而言,它是C:\ Users \ drilon.gradle)。在内部缓存和守护程序文件夹中删除所有版本文件夹(它们看起来像这样" 2.14.1"或" 3.0")。也去包装 - > dists - >删除那里的一切。
  2. 在项目根目录(对我来说是C:\ Users \ drilon \ AndroidStudioProjects \ PorjectName)中,转到.gradle文件夹并删除其中的所有内容。
  3. 重建项目
  4. 修改
    原来这个解决方案是将gradle版本设置回2.14.1。 ending0421的解决方案是工作解决方案。

答案 4 :(得分:2)

如果您的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

答案 5 :(得分:1)

在更新之前,您应该check your Gradle Plugin version and Gradle version

在项目级别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

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

gradleversion

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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

答案 8 :(得分: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'

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

如果gradle版本是3.x,则 在build.gradle中将classpath'com.android.tools.build:gradle:3.1.0'然后

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

选中它会起作用

答案 9 :(得分:0)

对于 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'

    }

答案 10 :(得分: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'
 }

答案 11 :(得分:0)

    After 1 hour R&D Not 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