我最近将我的项目的gradle版本从2.14.1更新到3.0。从那时起,每次出现此错误时,gradle构建都会失败:
错误:原因:org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection无法强制转换为org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection此意外错误的可能原因包括:
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
- Gradle的依赖缓存可能已损坏(这有时会在网络连接超时后发生。)重新下载依赖项并同步项目(需要网络)
- Gradle构建过程(守护程序)的状态可能已损坏。停止所有Gradle守护进程可以解决此问题。停止Gradle构建过程(需要重启)
- 您的项目可能正在使用第三方插件,该插件与项目中的其他插件或项目请求的Gradle版本不兼容。
我搜索了谷歌并找到了一些解决方案,如this one,但没有任何工作。有谁知道如何修理它?
将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()
}
如果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'
}
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项目......
你仍然面临一些问题提交或收件箱我....
......结束@Ambilpura
有关Android Studio 3.0的最新更新
在gradle-wrapper.properties
(文件名)中将distributionUrl
的URL更改为以下内容:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
如果你使用gradle插件2.1.3,它很容易解决:
将您的gradle插件更新到2.2.0-beta1版
注意:这是测试版,也许你可以得到任何其他问题。
https://discuss.gradle.org/t/classcastexception-in-gradle-nightly-3-0-20160609/17979
快乐编码:)
好的,我得到了它的工作。对于任何面临同样问题的人来说,它对我有用的方式如下:
编辑: 原来这个解决方案是将gradle版本设置回2.14.1。 ending0421的解决方案是工作解决方案。
如果您的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
中使用下面的代码
只需删除主项目文件夹中gradle文件夹中的所有内容并重建项目即可。它将开始工作。
如果你的gradle插件3.0.0 for studio version 3.0,请在gradle-wrapper.properties中添加它
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
简单回答试试这个...
转到build.gradle(PROJECT)并检查gradle版本,如下所示
'com.android.tools.build:grad: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中的classpath'com.android.tools.build:gradle:2.1.3'所以
gradle-wrapper.properties中的distributionUrl = https://services.gradle.org/distributions/gradle-2.14.1-all.zip。
如果gradle版本是3.x然后在build.gradle中的classpath'com.android.tools.build:gradle:3.1.0'然后
gradle-wrapper.properties中的distributionUrl = https://services.gradle.org/distributions/gradle-3.14.1-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添加下面的classpath
依赖{classpath'com.android.tools.build:grad:3.10'
}