【问题标题】:Gradle sync failed: Cause: error in opening zip file Corrupt Dependency CacheGradle 同步失败:原因:打开 zip 文件时出错 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**

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

【问题讨论】:

  • @Elias Fazel 他们没有提到项目根目录和主目录的位置..我是 Android 新手..我不知道 .gradle 目录的位置..
  • 项目的根目录。在文件资源管理器中打开你的项目,你会看到它

标签: java android android-studio intellij-idea 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】:

    以下是我的解决方案。

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

      distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-bin.zip
      
    2. 将下载的文件复制到上述 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 已损坏。只需将损坏的替换为手动下载的即可。

    3. 返回 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

              【讨论】:

                猜你喜欢
                • 2017-08-14
                • 2017-12-06
                • 1970-01-01
                • 1970-01-01
                • 2018-09-19
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多