我最近将项目的gradle版本从2.14.1更新到3.0。从那时起,每次出现此错误时,gradle构建都会失败:
错误:原因:org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection无法强制转换为org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection 此意外错误的可能原因包括:
对于损坏的Gradle进程,您还可以尝试关闭IDE,然后终止所有Java进程。
- Gradle的依赖关系缓存可能已损坏(这有时会在网络连接超时后发生。) 重新下载依赖项和同步项目(需要网络)
- Gradle构建过程(守护程序)的状态可能已损坏。停止所有Gradle守护进程可以解决此问题。 停止Gradle构建过程(需要重新启动)
- 您的项目可能正在使用第三方插件,该插件与项目中的其他插件或项目请求的Gradle版本不兼容。
我搜索了谷歌并找到了一些像this这样的解决方案,但没有任何效果。有谁知道如何解决它?
答案 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
,但我强烈建议您使用谷歌推荐的最新构建工具)
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)
好的,我让它运转了。对于任何面临同样问题的人来说,它的工作方式如下:
修改强>
原来这个解决方案是将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
-
distributionUrl=https\://services.gradle.org/distributions/gradle-gradle.version.zip
在回答此问题时,以下是最新版本。您可以在this page上匹配您的版本。
答案 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