更新到3.0后,Gradle构建失败

Dri*_*ori 68 android gradle android-studio android-gradle-plugin

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

我搜索过谷歌,发现了一些像这样的解决方案但没有任何效果.有谁知道如何修理它?

end*_*421 80

将gradle构建工具升级到最新版本.

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

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-beta1'
}
Run Code Online (Sandbox Code Playgroud)

然后你可以运行gradle tasksgradle将下载你需要的一切.

在2016年9月19日发布Android Studio 2.2之后,最新版本的构建工具为2.2.0.所以你可以修理它:

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}
Run Code Online (Sandbox Code Playgroud)

由于Android Studio 2.4 stable还没有准备好发布(2017年5月4日),最新的稳定版构建工具是2.3.1.

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.1'
}
Run Code Online (Sandbox Code Playgroud)

如果将此构建工具版本更新为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
Run Code Online (Sandbox Code Playgroud)

只需用jcenter()替换mavenCentral()

 repositories {
    jcenter()
    //mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)


Dha*_*osh 27

有关Android Studio 3.0的最新更新

gradle-wrapper.properties(文件名)中更改distributionUrl以下URL :

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


Lee*_*ang 8

如果你使用gradle插件2.1.3,它很容易解决:

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

注意:这是测试版,也许您可​​以获得任何其他问题.

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

快乐编码:)

  • 我快要杀了自己.谢谢你救了我的命. (4认同)

Dri*_*ori 5

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

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

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