Gradle的依赖缓存可能已经损坏(这有时会在网络连接超时后发生)。

113

我收到了这种错误,如何修复它。

Error:Unable to load class 'org.gradle.tooling.internal.protocol.test.InternalTestExecutionConnection'.
Possible causes for this unexpected error Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

请检查我的答案。在我的情况下,这是JDK路径问题。 https://dev59.com/75jga4cB1Zd3GeqPI1v0#44583007 - Ajji
当您的Gradle下载中途断开互联网连接时,会出现问题。因此,请转到C:\ Users \ your username \ .gradle \ wrapper \ dists \ gradle-6.5-bin并删除zip文件。重新打开项目,Gradle将开始再次下载100MB文件。 - Abdul Wahid
41个回答

195

我更新了我的Android Studio到2.3版本,它要求我将gradle插件更新到3.3版本,这导致我的项目出现了问题。 我查看了所有的Stack解决方案,但是除了这个解决方法外都没有起作用: 我在gradle-wrapper.properties中更改了我的分发URL为这个。

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

(永久链接列表在此处:https://services.gradle.org/distributions/)

我的项目已经正常运行。它要求我更新到 gradle构建工具 25.0.0,我已经这样做了。现在一切都很好:)

  1. 转到项目部分并选择gradle脚本菜单。
  2. 在脚本菜单下选择gradle-wrapper.properties
  3. 然后将distributionUrl=https://services.gradle.org/distributions/gradle-2.2-all.zip替换为"distributionUrl=https://services.gradle.org/distributions/gradle-3.4.1-all.zip"

输入图像描述 注意:Gradle发行版将根据Android Studio版本而变化。


6
完美解决方案,经过多天的搜索后对我很有效。谢谢。 - Franklyn
1
gradle-wrapper.properties在哪里找到?我只看到一个jar文件。 - portfoliobuilder
它在你的项目的Gradle文件夹层次结构中。 - Taimur Hassan
1
谢谢!但是在初始化了每个新项目之后,问题仍然存在。有没有永久的解决方法? - Oniya Daniel
2
对于未来需要更新此内容的任何人,Gradle 版本列表可以在此处找到:https://services.gradle.org/distributions/ 只需右键单击并保存链接位置即可在 gradle 文件中使用该字符串。 - PGMacDesign
显示剩余2条评论

69

确保您拥有网络连接,然后:

1.针对Windows用户转到> C:\Users\username\.gradle\wrapper\dists

2.针对Linux用户 转到$HOME/.gradle (~/.gradle)和/或(在特定项目下) <PROJECT_DIR>/.gradle

3.删除具有问题的Gradle文件(即缺少其提取文件的已压缩文件夹)

4.使用Gradle文件同步项目。


4
在我的情况下,在下载Gradle时互联网连接中断。点击“重试”没有任何作用(在Android Studio 3.1.3上)。删除“C:\Users\username.gradle\wrapper\dists”文件夹可修复该问题并允许重新下载。 - SameOldNick

27

删除损坏文件

当Gradle文件未完全下载或因其他原因发生损坏时,会出现此错误,因此我们必须重新下载这些文件。 简便的方法是删除旧文件在

C:\Users\username.gradle\wrapper\dists

并重新构建项目,Android Studio将自动下载新文件。


谢谢分享,我之前一直下载不了,就算我换了版本也没有用。但是删除文件后重新尝试下载就成功了,非常感谢。 - Mousa Alfhaily
在我的情况下,它没有起作用。我尝试删除文件,但仍然面临相同的问题。 - Maulik Dodia

14

观看教程: https://www.youtube.com/watch?v=u92_73vfA8M

或者

按照以下步骤操作:

  1. 打开任意浏览器

  2. 输入 gradle 并按下回车键

你可以在 gradle 关键字后面指定任何你想要的版本

我正在下载 gradle 3.3

  1. https://services.gradle.org/distributions。如果你想要,可以直接点击说明中的链接

  2. 点击 gradle 3.3 all.zip

  3. 等待下载完成

  4. 下载完成后 将文件提取到以下位置

c://user/your pc name /.gradle/wrapper/dists

  1. 等待提取完成,这需要大约5分钟

  2. 现在在 Android Studio 中打开你的项目

9.转到文件>设置>构建、执行、部署>gradle

  1. 现在将 "使用默认的 Gradle" 更改为

使用本地 Gradle 发行版

选择你提取 gradle 3.3.zip 的位置

C:\Users\your pc name.gradle\wrapper\dists\gradle-3.3

  1. 点击确定

  2. 现在重新开始构建

你可以看到构建已成功,并且错误已解决


请把以下关于编程的内容从英语翻译成中文。仅返回翻译后的文字,不要进行任何解释。 - JuLes
为什么我们需要浏览器? - IgorGanapolsky
下载Gradle文件以便在本地进行后续构建。 - Manoj Selvin

7
这个问题有很多答案,但只有少数是有用的。我想给出准确和最新的答案。
Gradle 的依赖缓存可能已经损坏(有时在网络连接超时后会发生此情况)。
当你的互联网连接不好或者在 Android Studio 下载所需的依赖项时将电脑休眠,会出现这个错误。
如何解决这个问题:
1. 找到项目的 Gradle 版本。你可以在 `gradle-wrapper.properties` 中找到 `distributionUrl`。我的 Gradle 发行版为 `https\://services.gradle.org/distributions/gradle-6.5-all.zip`,这意味着需要下载 `gradle-6.5-all.zip`,而现在它因为连接超时而损坏了。让我们找到该文件夹并将其删除。
2. 转到 `$HOME/.gradle` 文件夹,然后转到 `wrapper`,再转到 `dists`,然后找到与需要下载的 Gradle 版本名称匹配的文件夹。在我的情况下,它是 `gradle-6.5-all.zip`,选择此文件夹并将其删除。
3. 现在同步项目,并确保你拥有良好的互联网连接和防止系统在下载时进入睡眠状态的设置。

唯一不会干扰生成的Gradle文件的答案。 - dianakarenms
这是正确的答案。 - Islam Alshnawey

7
如果您手动设置了Gradle,还要确保项目的build.gradle版本与其兼容。以下是示例。
项目的build.gradle:
dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
    }

手动设置gradle

手动设置gradle


6

请删除 /.graddle/version/ 目录下的所有文件夹。

这是我解决问题的方法。祝好运。


5
也许您可以在终端中运行./gradlew build -s命令,堆栈跟踪将显示出错的位置。

在我的情况下,我发现我的一个代码库失败了,导致gson依赖下载失败。 - Scott Wang
1
这个命令帮助我找到了正确的损坏的Gradle文件。 - Joey Chong

4

我通过从以下链接下载当前版本的Graddle(可能是Graddle 3.3)来解决了这个问题:

下载最新版本的Graddle

接下来,我访问了Mac上主目录下的.graddle/wrapper/dists目录,并在显示隐藏系统文件后删除了旧版本文件夹。

现在,我将下载的最新版本文件夹解压缩后放在那里。然后重新启动了Android Studio,问题得到了解决。


4

2
如果不起作用,请在执行此操作后提供您的Gradle日志。 - Nir Duan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接