我最近将我的项目的 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 进程。
我搜索了谷歌并找到了一些类似 的 解决方案,但没有任何效果。有谁知道如何修理它?
原文由 Drilon Blakqori 发布,翻译遵循 CC BY-SA 4.0 许可协议
将您的 gradle 构建工具升级到最新版本。
一种简单的方法是在您的
build.gradle
文件中添加最新版本的构建工具作为依赖项,例如:然后你可以运行
gradle tasks
并且 gradle 会下载你需要的一切。在 2016 年 9 月 19 日发布 Android Studio 2.2 稳定版之后,最新版本的构建工具是 2.2.0 。所以你可以通过以下方式修复它:
由于 Android Studio 2.4 稳定版尚未准备好发布(2017 年 5 月 4 日),构建工具的最新稳定版是 2.3.1 。
如果您将此构建工具版本更新为 2.3.* ,您还应该在 /yourProjectRoot/gradle/wrapper/gradle-wrapper.properties 文件中将 gradle 包装器版本更新为 3.3。 (我知道它不匹配问题
Gradle build failing after update to 3.0
,但我强烈建议您使用谷歌推荐的最新构建工具)顺便说一句:构建工具的版本 2.3.1 仅存在于 jCenter 上,而不存在于 MavenCentral 上,因此如果在终端中运行 gradlew 命令行时遇到以下错误
只需将 mavenCentral() 替换为 jcenter() 即可