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”
Flutter采坑之路 用真机跑起来的时候提示 initGradle失败,IO异常,downloading Gradle-4.6-all.zip失败