Gradle 同步失败:原因:打开 zip 文件时出错 Corrupt Dependency Cache

Posted

技术标签:

【中文标题】Gradle 同步失败:原因:打开 zip 文件时出错 Corrupt Dependency Cache【英文标题】:Gradle sync failed: Cause: error in opening zip file Corrupt Dependency Cache 【发布时间】:2017-07-24 07:28:12 【问题描述】:

我是 android Studio 新手,刚开始通过 Udacity 的“开发 Android 应用程序”在线课程学习。问题是我正在开发的项目与课程“Sunshine”保持一致>" 无法正确同步。

这是事件日志中显示的消息。

Gradle 同步失败:原因:打开 zip 文件时出错

日志的完整描述:

**2017-03-04 08:14:32,358 [  61978]   WARN - nal.AbstractExternalSystemTask - Cause: error in opening zip file 
com.intellij.openapi.externalSystem.model.ExternalSystemException: Cause: **error in opening zip file**
    at com.android.tools.idea.gradle.project.sync.idea.ProjectImportErrorHandler.getUserFriendlyError(ProjectImportErrorHandler.java:86)
    at com.android.tools.idea.gradle.project.sync.idea.AndroidGradleProjectResolver.getUserFriendlyError(AndroidGradleProjectResolver.java:361)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:769)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:749)
    at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.java:227)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:112)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:72)
    at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.lambda$resolveProjectInfo$0(RemoteExternalSystemProjectResolverImpl.java:37)
    at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:59)
    at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37)
    at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java:49)
    at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:51)
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:138)
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:124)
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.execute(ExternalSystemUtil.java:415)
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$5.run(ExternalSystemUtil.java:494)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:635)
    at com.intellij.openapi.progress.impl.CoreProgressManager$3.run(CoreProgressManager.java:170)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:494)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:443)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:155)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:128)
    at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:307)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.zip.ZipException: **error in opening zip file**
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:219)
    at java.util.zip.ZipFile.<init>(ZipFile.java:149)
    at java.util.zip.ZipFile.<init>(ZipFile.java:163)
    at org.gradle.wrapper.Install.unzip(Install.java:214)
    at org.gradle.wrapper.Install.access$600(Install.java:27)
    at org.gradle.wrapper.Install$1.call(Install.java:74)
    at org.gradle.wrapper.Install$1.call(Install.java:48)
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
    at org.gradle.wrapper.Install.createDist(Install.java:48)
    at org.gradle.tooling.internal.consumer.DistributionFactory$ZippedDistribution$1.call(DistributionFactory.java:139)
    at org.gradle.tooling.internal.consumer.DistributionFactory$ZippedDistribution$1.call(DistributionFactory.java:133)
    ... 4 more**

有人可以为我指出如何解决此问题的正确方向吗?

【问题讨论】:

检查这个解决方案***.com/questions/23828085/… @Elias Fazel 他们没有提到项目根目录和主目录的位置..我是 Android 新手..我不知道 .gradle 目录的位置.. 项目的根目录。在文件资源管理器中打开你的项目,你会看到它 【参考方案1】:

只需从您的主目录中删除 gradle 文件夹!即

~/<username>/.gradle/wrapper/dists/<gradle-name>

其中gradle-name 是您必须删除的发行版。然后打开android studio,打开项目重新同步gradle。

【讨论】:

100% 完美工作!! :D 还是不知道为什么会这样。 @sudoz 以我的经验,当 gradle 在同步时被中断时,确实会发生这种情况。主要是在升级 gradle 时 @sudoz 我遇到了一种情况,项目中的一个 git repos 使用了git-lfs,而我没有安装和设置它【参考方案2】:

原因:java.util.zip.ZipException:打开 zip 文件时出错

这意味着 Gradle 下载的文件由于某种原因已损坏。这可能是 Gradle 本身的下载(包装器会这样做)或 Gradle 为运行您的构建而下载的任何依赖项。

Gradle 不会尝试检测或解决问题,因此您需要手动修复它。解决方案通常是清除 Gradle 的下载缓存并让它获得所需内容的新副本。


为此,请删除 主目录项目的根目录 中的 .gradle 目录,然后再次尝试构建。

在您的情况下,主目录是

C:\Users\User\.gradle

【讨论】:

【参考方案3】:

以下是我的解决方案。

    手动下载文件 $PROJECT/gradle/wrapper/gradle-wrapper.properties 中定义的 distributionUrl 指定的文件。就我而言,该行如下所示:

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

    将下载的文件复制到上述 gradle-wrapper.properties 文件中指定的路径。在我的情况下,gradle-2.14.1-bin.zip 应该放入文件夹中:

    ~/.gradle/wrapper/dists/gradle-2.14.1-bin/2r579t5wehc7ew5kc8vfqezww
    

    由于 gradle 尝试下载 gradle-2.14.1-bin.zip 但失败,因此该文件夹中的 gradle-2.14.1-bin.zip 已损坏。只需将损坏的替换为手动下载的即可。

    返回 android studio 并单击超链接错误消息。它应该继续同步。

【讨论】:

谢谢,详细的一步一步的解释。这对我有用。【参考方案4】:

出现此错误时,我创建了一个新项目。 在终端:

cd /Users/<user>/.gradle/wrapper/dists
ls

在这里,我可以看到 Android Studio 正在尝试下载 gradle-4.6-all,而我已经拥有 gradle-4.10-all(这对我早期的项目有用)。 我删除了文件夹 rm -r gradle-4.6-all.

在我的 gradle-wrapper.properties 文件中,我将分发 URL 替换为 distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip 同步我的项目,它工作。

【讨论】:

【参考方案5】:
~/<username>/.gradle/wrapper/dists/<gradle-name>

删除那个gradle并重新安装它

【讨论】:

【参考方案6】:

从此链接下载 gradle 最新版本 https://services.gradle.org/distributions/ 提取 gradle 目录中的文件 现在转到 android studio 文件>设置>构建>执行部署将默认 gradle 位置更改为您下载的本地 gradle 单击确定并重建项目 这将解决

【讨论】:

【参考方案7】:

问题是 android studio/gradle 没有权限访问您项目文件夹中的文件。 要更正此问题,请转到您的项目文件夹 > 属性 > 安全 > 编辑并为当前用户或所有用户选择完全控制

【讨论】:

【参考方案8】:

在 IntelliJ Ultimate 2018 和 2019 中遇到相同的错误。

我通过这样做解决了这个问题: 使用 brew 下载 gradle: brew install gradle 然后像这样设置gradle设置并重新同步。注意 Gradle Home:

【讨论】:

【参考方案9】:

此错误是由于损坏的 gradle 文件引起的。您只需删除以下文件夹并打开 Android Studio。它将自动重新开始下载 gradle 文件,并且可以正常工作。Delete the following folder

【讨论】:

以上是关于Gradle 同步失败:原因:打开 zip 文件时出错 Corrupt Dependency Cache的主要内容,如果未能解决你的问题,请参考以下文章

Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错

Android Studio 2.3 错误:“Gradle 同步失败:原因:services.gradle.org”

Gradle 同步失败:原因:启动失败:

Flutter采坑之路 用真机跑起来的时候提示 initGradle失败,IO异常,downloading Gradle-4.6-all.zip失败

Gradle 同步失败:无法找到请求目标的有效证书路径

Gradle 项目同步失败。基本功能 - 在 Android Studio 2.2 上失败