更新到3.0后,Gradle构build失败

我最近更新了我的项目的gradle版本从2.14.1到3.0。 从那以后,gradle build每次都会出现这个错误:

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

  • Gradle的依赖关系caching可能已损坏(有时发生在networking连接超时之后)。重新下载依赖项并同步项目(需要networking)
  • Gradle构build过程(守护进程)的状态可能已损坏。 停止所有的Gradle守护进程可能会解决这个问题。 停止Gradle构build过程(需要重新启动)
  • 您的项目可能使用与项目中的其他插件或项目请求的Gradle版本不兼容的第三方插件。

在损坏的Gradle进程的情况下,您也可以尝试closuresIDE,然后杀死所有的Java进程。

我search谷歌,发现一些这样的解决scheme,但没有任何工作。 有谁知道如何修理它?

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

一个简单的方法是在build.gradle文件中添加最新版本的构build工具作为依赖关系,例如:

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

然后你可以运行gradle tasks ,gradle会下载你需要的所有东西。

在2016年9月19日发布Android Studio 2.2之后,最新版本的构build工具是2.2.0。 所以你可以解决它:

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

由于Android Studio 2.4 stable尚未发布(2017年5月4日),最新的构build工具的稳定版本是2.3.1。

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

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

顺便说一句:构build工具的版本2.3.1只存在于jCenter,而不是MavenCentral,所以如果在terminal运行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()replacemavenCentral()即可

  repositories { jcenter() //mavenCentral() } 

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

更新你的gradle插件到版本2.2.0-beta1

注:这是一个testing版,也许你可以得到任何其他问题。

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

快乐编码:)

好吧,我得到了它的工作。 对于面临同样问题的人来说,它对我的​​工作方式如下:

  1. 转到您的外部.gradle文件夹(对于我来说这是C:\ Users \ drilon.gradle)。 里面的caching和守护进程文件夹删除所有的版本文件夹(他们看起来像这个“2.14.1”,或“3.0”)。 也去包装 – > dists – >删除那里的一切。
  2. 在你的项目根目录(对我来说,它是C:\ Users \ drilon \ AndroidStudioProjects \ PorjectName)转到.gradle文件夹并删除所有内容。
  3. 重build项目

编辑:
原来这个解决scheme是把gradle版本设置回2.14.1。 0421的解决scheme是工作的。