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

Posted

技术标签:

【中文标题】Gradle 的依赖缓存可能已损坏(这有时会在网络连接超时后发生。)【英文标题】:Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) 【发布时间】:2016-11-21 10:13:23 【问题描述】:

我遇到了这种错误,如何解决。

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 路径问题。 ***.com/a/44583007/3265444 在您的 gradle 下载过程中 Internet 断开连接时会出现问题。所以去 C:\Users\your username\.gradle\wrapper\dists\gradle-6.5-bin 并删除 zip 文件。重新打开项目,gradle 将再次开始下载 100mb 文件。 【参考方案1】:

我将我的 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 build tools 25.0.0,我这样做了。现在一切都很好:)

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

注意:distributions gradle 会根据 android studio 的版本而改变。

【讨论】:

完美的解决方案,经过几天的搜索对我有用。谢谢。 在哪里找到 gradle-wrapper.properties?我看到的只是一个 jar 文件 它在您项目的 Gradle 文件夹层次结构中。 谢谢!但是在初始化每个新项目后问题仍然存在。有永久修复吗? 对于将来更新此内容的任何人,可以在此处找到 Gradle 版本列表:services.gradle.org/distributions 只需右键单击并保存链接位置即可在 gradle 文件中使用字符串。【参考方案2】:

然后确保您有 Internet 连接:

1.对于窗口用户转到> C:\Users\username\.gradle\wrapper\dists

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

3.删除有问题的 gradle 文件(即带有 没有提取的文件丢失)

4.将项目与 gradle 文件同步。

【讨论】:

就我而言,下载 Gradle 时互联网中断了。单击“再试一次”什么也没做(在 Android Studio 3.1.3 上)。删除 C:\Users\username\.gradle\wrapper\dists 文件夹确实修复了它并允许它再次下载。【参考方案3】:

删除损坏的文件

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

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

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

【讨论】:

感谢分享,一直无法和我一起下载,所以即使我换了版本也无济于事,但删除文件再试一次,成功了,谢谢。 就我而言,它不起作用。我试图删除文件仍然面临同样的问题。【参考方案4】:

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

按照步骤:

    转到任何浏览器

    输入 gradle 并回车

你可以在后面指定任何你想要的版本

gradle 关键字

我正在下载 gradle 3.3

    https://services.gradle.org/distributions 如果需要,请直接单击描述中的此链接

    点击 gradle 3.3 all.zip

    等待下载完成

    下载完成后 将文件解压到该位置

c://user/你的电脑名/.gradle/wrapper/dists

    等到提取需要 5 分钟才能完成

    现在在 android studio 中打开您的项目

9. 转到文件 > 设置 >bulid ,exec,deployment > gradle

    现在将使用默认 gradle 更改为

使用本地 gradle 分发

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

C:\Users\你的电脑名.gradle\wrapper\dists\gradle-3.3

    点击确定

    现在重新开始构建,

您现在可以看到构建成功并且错误已解决

【讨论】:

这个答案应该涵盖问题的每一个流程 我们为什么需要浏览器? 下载gradle文件到本地,用于后续本地构建【参考方案5】:

如果您手动设置 gradle,还要确保项目 build.gradle 版本与其兼容。请参阅以下示例。

项目的 build.gradle

dependencies 
        classpath 'com.android.tools.build:gradle:2.3.2'
    

手动 gradle 设置

【讨论】:

【参考方案6】:

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

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

【讨论】:

【参考方案7】:

这个问题有很多答案,但有一些是有帮助的。我想给出准确和更新的答案。

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

当您的互联网连接不良或您在 Android Studio 下载所需的依赖项时让您的计算机进入睡眠状态时会发生此错误。

如何解决此问题。

    找出项目的 Gradle 版本。你会发现在gradle-wrapper.propertiesdistributionUrl 我的gradle 分发是https\://services.gradle.org/distributions/gradle-6.5-all.zip 这意味着gradle-6.5-all.zip 需要下载,现在它由于连接超时而损坏。让我们找出这个文件夹并删除它。 转至$HOME/.gradle 文件夹,然后转至wrapper,然后转至dists,然后找到与下载所需的 gradle 版本名称相匹配的文件夹。在我的例子中是gradle-6.5-all.zip 选择这个文件夹并删除它。 现在同步项目并确保您有良好的互联网连接和设置,以防止您的系统在下载内容时进入睡眠状态。

【讨论】:

唯一不会弄乱生成的gradle文件的答案 这是正确答案。【参考方案8】:

尝试下一步以“刷新”您的 IDE(android 工作室)

1.让Gradle通过点击Build | 重建你的自动生成的文件。重建 2. 也可以试试Choose File | Invalidate Caches/Restart.

【讨论】:

如果不起作用 - 请在执行此操作后提供您的 Gradle 日志。【参考方案9】:

我通过从给定链接下载当前版本的 graddle 解决了这个问题 download latest version of graddle possibly graddle 3.3

然后在下一步中,在显示隐藏的系统文件并删除驻留在那里的 previuos 版本文件夹后,我从 Mac 上的主目录访问了 .graddle/wrapper/dists 目录。

现在我把下载的最新版本文件夹解压后放在那里。 现在重启了Android studio,问题就解决了。

【讨论】:

【参考方案10】:

也许你可以在终端运行./gradlew build -s,堆栈跟踪会告诉你哪里出错了。

【讨论】:

就我而言,我发现我的一个存储库失败,导致 gson 依赖项下载失败 这个命令帮助我找到正确的损坏的 gradle 文件。【参考方案11】:

如果您在使用 Gradle 6.5 的 Android Studio 4.1 中看到此错误,那么您应该返回到

classpath 'com.android.tools.build:gradle:4.0.2'

由于某种原因

classpath 'com.android.tools.build:gradle:4.2.0'

无法正常工作。

【讨论】:

谢谢。它的工作。类路径“com.android.tools.build:gradle:4.1.1” 就我而言,我实际上需要将其更改为 4.2.0。更新 Android Studio 后,我的 build.grade 文件仍设置为 3.4。【参考方案12】:

你可以试试这个

    首先打开您的 Android Studio > 打开您正在执行的任何项目 点击文件 > 设置 > 构建、执行、部署 > Gradle 在项目级别设置中,有 2 个选项可以使用默认或本地同步 gradle。

    现在从默认更改为本地 gradle 分发 > gradle Home

    在您的计算机上选择路径。

C:\Program Files\Android\Android Studio\gradle\gradle-4.1

    点击确定

    现在重新开始构建,应该可以解决了。

【讨论】:

【参考方案13】:

转到“C:\Users\.gradle\caches\”。删除文件夹中的所有文件。然后同步 Gradle 并重建项目。

【讨论】:

谢谢。至少 4 小时我试图解决这个问题,除了这个,*** 上的每个解决方案都失败了。【参考方案14】:

我删除了 gradle 文件夹,然后我进行了重建,一切正常

【讨论】:

【参考方案15】:

如果你使用的是 Ubuntu,那么首先你要从你的主目录或你的 android studio 文件夹中取消隐藏所有文件:

    转到您的主目录并使用 ctrl+h 取消隐藏所有文件 您找到了 .gradle 文件夹 .gradle 内部 -> 包装器 你可以找到dists文件夹,所以删除这个dists文件夹 创建一个新项目,而不是重新下载 Gradle 文件 刚果你成功建项目

【讨论】:

【参考方案16】:

检查 gradle-wrapper.properties 中的 distributionUrl 设置。我将https更改为http,然后我的问题就解决了。

【讨论】:

【参考方案17】:

在我的情况下,只需在 gradle-wrapper 中将 http 更改为 https 并同步它。

【讨论】:

【参考方案18】:

只需重新导入项目。 :) 我尝试清理缓存,刷新依赖不起作用但失败了。

【讨论】:

我不得不删除并重新导入我的模块【参考方案19】:

清除 .gradle 文件夹并重建

【讨论】:

【参考方案20】:

    打开 C:\Users\Username.gradle\wrapper\dists\

    打开最新的 gradle 文件夹,例如gradle-4.1-rc-1-all

    你会发现一个名为936kh1brdchce6fvd2c1o8t8x的随机文件夹

    下载同名的zip文件

    例如:https://downloads.gradle.org/distributions/gradle-4.1-rc-1-all.zip

    将其保存在此文件夹中

    重启安卓工作室

    它会自动解压 zip 文件夹并清除错误

【讨论】:

【参考方案21】:

终于解决了这个问题。

如果你只是将新版本的文件复制到旧文件夹并覆盖文件,你可能会遇到和我一样的问题。

解决它:

    确保您已保存所有设置。 关闭 AS,删除所有混合版本的文件。 将新版本解压到您的空文件夹中。

它对我有用。

【讨论】:

为我工作。应用程序是通过自助服务部署的,无需先清除旧目录。要求他们这样做解决了这个问题。谢谢!【参考方案22】:

对我来说,我正在从 github 克隆一个项目,该项目使用的 gradle 版本高于我安装的版本。我有两个选择:

    打开您正在成功构建的项目的 gradle.wrapper-properties,然后复制显示 distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 的行。使用它来替换失败的项目中的相同值。这应该可以解决问题。

    如果用于构建项目的 gradle 版本高于您刚刚添加的版本,您的构建可能仍会失败。为此,您应该将 gradle 版本更新到最新版本。

【讨论】:

【参考方案23】:

在我的情况下,我不得不改变:

plugins 
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
    **apply plugin :'com.google.gms.google-services'**

plugins 
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'com.google.gms.google-services'

【讨论】:

【参考方案24】:
    在 google 上搜索“下载 java 11” 点击oracle网站将你的java下载到你的平台并安装。 进入android studio 点击CTRL+SHIFT+ALT(项目结构) SDK Location Tab 显示你安装的JDK位置的路径

【讨论】:

【参考方案25】:

在你的 gradle-wrapper.properties 中

distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

这不会下载并且总是给出“gradle cache损坏”错误,但是一个小改动就可以正常工作

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

现在再次同步 gradle 就完成了。

【讨论】:

【参考方案26】:

我将概括您可能面临的问题

module'sbuild.gradle 内部:

变化:

plugins 
    [...]
    apply plugin:'whatever_you_have'

plugins 
    [...]
    id 'whatever_you_have'

换句话说,用id代替apply plugin:

【讨论】:

【参考方案27】:

找不到方法''void com.android.build.api.extension.AndroidComponentsExtension$DefaultImpls.androidTest$default(com.android.build.api.extension.AndroidComponentsExtension, com.android.build.api.extension.VariantSelector, kotlin.jvm.functions.Function1, int, java.lang.Object)'' 'void com.android.build.api.extension.AndroidComponentsExtension$DefaultImpls.androidTest$default(com.android.build.api.extension.AndroidComponentsExtension, com.android.build.api.extension.VariantSelector, kotlin.jvm.functions.Function1, int, java.lang.Object)'

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

重新下载依赖并同步项目(需要网络)的状态 Gradle 构建过程(守护进程)的进程可能已损坏。停止所有 Gradle 守护进程可以解决这个问题。

停止 Gradle 构建过程(需要重新启动)您的项目可能 使用与其他插件不兼容的第三方插件 项目中的插件或请求的 Gradle 版本 项目。

在 Gradle 进程损坏的情况下,您也可以尝试关闭 IDE,然后杀死所有 Java 进程。

将 Android Studio 升级到 4.2.0 后发生在我身上。

将 build.gradle 上的 hilt 类路径更新到 2.35 为我解决了这些问题。

classpath "com.google.dagger:hilt-android-gradle-plugin:$2.35"

【讨论】:

【参考方案28】:

如果你已经更新了你的 android studio,然后去 FILE,Project Structure,Project,然后检查 gradle 版本。在此之前检查 C:\Program Files\Android\Android Studio\gradle 中的 gradle 版本并检查版本是否匹配,然后再次同步,否则在 android studio 中更改 gradle 版本并再次同步。

【讨论】:

【参考方案29】:

克隆AnySoftKeyboard 并在 Android Studio 中打开后,我遇到了类似的问题。对我有用的是删除AynSoftKeyboard/gradle 文件夹,然后通过菜单项Build > Clean Project 清理项目。

因此,请尝试删除 YourProject/gradle 文件夹并清理项目以触发 Gradle 同步。

希望它适用于您的情况。

【讨论】:

【参考方案30】:

从here 为您的操作系统下载 gradle 并解压缩文件并将内部文件夹粘贴到 installLocation/gradle

比在 Android Studio Goto File > Settings > bulid ,exec,deployment > gradle 并选择本地 gradle 选项并提供您新下载的 gradle 的文件路径并点击 ok it works :)

【讨论】:

以上是关于Gradle 的依赖缓存可能已损坏(这有时会在网络连接超时后发生。)的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 2.3 gradle 错误

Android Gradle 的依赖缓存可能已损坏且 gradle build 无法正常工作

错误:无法打开 zip 文件。 Gradle 的依赖缓存可能已损坏

手机优酷上下载的视频显示文件损坏怎么回事

尝试读取或写入受保护的内存。这通常表明其他内存已损坏

强制刷新gradle依赖缓存的方法