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

Posted

技术标签:

【中文标题】Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错【英文标题】:Android studio - Failed to complete gradle execution - error in opening zip file 【发布时间】:2014-07-12 17:54:01 【问题描述】:

我是 android 开发和 android studio IDE 的新手。

我从 bitbucket 签出了一个项目,当我尝试编译它时,我收到以下错误:

Gradle 执行失败

原因: 打开 zip 文件时出错。

我的gradle-wrapper.properties如下:

distributionBase=GRADLE_USER_HOME 分发路径=包装器/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=包装器/dists distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip

我无法从中获得太多信息,但完整的日志指出:

2014-05-23 14:06:28,950 [ 32077] 警告 - nal.AbstractExternalSystemTask - 原因:打开 zip 文件时出错 com.intellij.openapi.externalSystem.model.ExternalSystemException: 原因:在打开 zip 文件时出错 org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:206) 在 org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:116) 在 org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:64) 在 com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:41) 在 com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:37) 在 com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:59) 在 com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37) 在 com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java:49) 在 com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:48) 在 com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:137) 在 com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:123) 在 com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.execute(ExternalSystemUtil.java:467) 在 com.intellij.openapi.externalSystem.util.ExternalSystemUtil$4$2.run(ExternalSystemUtil.java:546) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:464) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) 在 com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:373) 在 com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:419) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 在 com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:149)

2014-05-23 14:06:28,950 [ 32077] 警告 - .project.GradleProjectImporter - 2014-05-23 14:06:28,951 [ 32078] 信息 - .project.GradleProjectImporter - 原因:打开 zip 时出错 文件

我使用的是 Android Studio 0.5.2。

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

【问题讨论】:

尝试删除主目录和项目目录中的 .gradle 文件夹。 @ScottBarta 从我的用户目录中删除 .gradle 文件夹,然后单击“使用 Gradle 文件同步项目”为我解决了这个问题。如果您将其写为答案,我会将其标记为已接受。谢谢:) @ScottBarta 你能告诉我 .gradle 文件夹在哪里吗?对不起,我是 android 的新手 【参考方案1】:

“打开 zip 文件时出错”往往意味着 Gradle 下载的文件以某种方式损坏 - 这可能是 Gradle 本身的下载(包装器会这样做),或者是 Gradle 下载到的依赖项运行你的构建。

Gradle 不会尝试检测或解决问题,因此您需要手动修复它。解决方案通常是清除 Gradle 的下载缓存并让它获得所需内容的新副本。为此,请删除主目录和项目根目录中的 .gradle 目录,然后再次尝试构建。

【讨论】:

感谢 Scott 的回答。它帮助了我的一天。自从 Yes'day 以来一直在努力设置 AS,因为 Eclipse 的 ADT23.0 存在问题并且失去了近 2 天的努力。决定搬到 AS,现在它已经启动并运行了。让我从那里开始表演…… @scott 我有 2 个具有相同 gradle 版本的项目,但其中只有一个突然给了我同样的错误。我做了你说的一切,但错误仍然存​​在。仅供参考,如果这很重要,这个项目已经实施了凌空抽射。你能帮忙吗? 请注意:我们需要删除 2 个 .gradle 文件夹,一个在项目目录中,另一个在 C:/Users/Your Name/.gradle ,我错过了希望它对某人有所帮助 @Scott Barta 你能告诉我 .gradle 文件夹在哪里吗?对不起,我是 android 的新手... 我遇到了一个使用 git-lfs 的项目,该项目未在我的机器上设置,每次构建时,.gradle 缓存都会损坏【参考方案2】:

如果您的互联网计划有限,请使用以下方法。

Step1:关闭android studio

Step2转到 C:\Users\Khurshid\.gradle\wrapper\dists\gradle-1.12-all\2apkk7d25miauqf1pdjp1bm0uo(如果要配置 gradle 1.12 )

Step3:尝试双击打开 gradle-1.12-all.zip。如果它给出错误消息,则删除 zip 文件。

第 4 步:转到 https://services.gradle.org/distributions 并下载 gradle-1.12-all.zip(大约 54mb)并将其复制到您之前删除 zip 文件的文件夹中。

step5:打开 android studio 并进入 file->setting 选择 'gradle' 并点击 'use local gradle distribution' 并将 'gradle home' 设置为 'C:\Users \Khurshid\.gradle\wrapper\dists\gradle-1.12-all\2apkk7d25miauqf1pdjp1bm0uo\gradle-1.12-all.zip' 然后点击确定。

step6:它将通过互联网下载一些文件。如果下载没有自动开始,则重新启动 android studio。

step7:耐心等待,让它下载一些重要的东西,然后一切正常。此方法将帮助您保存互联网数据。下载整个 gradle 目录会消耗双倍的数据。

谢谢

【讨论】:

【参考方案3】:

我在将现有项目导入 Android Studio 时也遇到了类似的问题,这可能是由于两个不同 Android Studio 平台之间的 gradle 版本不匹配而发生的。

解决方案(在 Mac OS 上):

    关闭 Android Studio。 在 User/.gradle/ 找到 .gradle 文件夹 删除文件夹并清除垃圾箱。 重新启动 Android Studio 并同步您的项目。它将重新下载 gradle 插件和配置。

【讨论】:

【参考方案4】:

对我来说,解决此错误的方法是将 ../gradle/wraper/gradle-wrapper.properties 中的 gradle 包装器版本更改为不同/更新的版本。我使用的是:

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

然后调用:

./gradlew --refresh-dependencies

这告诉包装器指向一个新版本并重新下载所有必需的依赖项。我怀疑我的错误是由于首次构建相关项目时下载中断造成的。

【讨论】:

【参考方案5】:

我通过...解决了这个问题

进入设置...> Gradle 选择“使用本地 Gradle 分发”。 指向我的 Gradle zip 文件:home/kersting/.gradle/wrapper/dists/gradle-1.12-all/6vpvhqu0efs1fqmqr2decq1v12/gradle-1.12

如果您下载了 Gradle,您应该会得到类似的东西,而您在下载 Android Studio 时应该拥有。请注意,.gradle 文件可能会被隐藏。我是通过终端找到的,但是“ls”没有显示出来。

【讨论】:

【参考方案6】:

我有同样的问题,在打开和关闭 jack 和 jill 工具链后发生。我尝试删除 .gradle 但没有帮助。删除我的项目文件夹中的 build 目录可以解决问题。

在删除 .gradle 之前试试这个,因为它需要将近 200MB 的下载量。

【讨论】:

【参考方案7】:

我通过以下方式解决了同样的问题:

转到文件 -> 设置 -> Gradle

在“Gradle VM options:”框中输入以下内容:-XX:MaxHeapSize=256m -Xmx256m

点击应用,Android Studio 应该会成功构建您的项目。

【讨论】:

【参考方案8】:

清除 .gradle 目录并没有帮助,但清除 build 目录对我来说已经完成了这项工作。

【讨论】:

【参考方案9】:

您只需编辑build.gradle 文件。

您应该将类​​路径设置为最新的 gradle 版本

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

并同步项目。所有错误都会消失。您可以做的是,在 android studio 中创建新项目,该项目将具有最新 gradle 的类路径并将其粘贴到具有 Cause: error in opening zip file. 此错误的项目中。

【讨论】:

【参考方案10】:

我遇到了同样的问题,为了解决这个问题,我下载了最新版本的 gradle:

https://services.gradle.org/distributions

然后在右侧栏中打开gradle,然后选择gradle参数并将旧gradle的路径更改为新的。

【讨论】:

【参考方案11】:

删除 .gradle 文件夹对我有用。删除 .gradle 文件夹后问题解决

【讨论】:

【参考方案12】:

此问题的原因之一(自 2019 年底以来)是 decommissioning of HTTP services by Gradle - 我看到您在 distributionUrl 中使用了 HTTP 协议。这意味着如果您的 [PROJECT_PATH]/gradle/wrapper/gradle-wrapper.properties 文件有如下条目:

distributionUrl=http\://services.gradle.org/distributions/gradle-version.zip

... 然后这个条目将尝试从不再为其提供服务的服务中检索ZIP 文件(基于http 的服务),它会默默地返回一个空的ZIP 文件;因此,这将是任何尝试解压缩该空 ZIP 文件的进程的错误来源。

要解决此问题,只需将您的[PROJECT_PATH]/gradle/wrapper/gradle-wrapper.properties 文件更改为使其distributionUrl 条目使用https

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

希望这会有所帮助。

【讨论】:

【参考方案13】:

只需像这样将distributionUrl 更改为最新:

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

它将下载所有必要的 gradle 文件和你的好去处。

【讨论】:

【参考方案14】:

在最新版本的 Android Studio 文件中 -> Invalidate Caches / Restart 值得一试。

【讨论】:

【参考方案15】:

我遇到了同样的问题

转到 C:\Users\Jesus Navas.gradle\wrapper\dists\gradle-3.3-all(您的 gradle 版本)。

擦除当前的 gradle 版本并在 cmd "ionic build android" 中再次写入。

但是,你的 gradle 会再次下载,然后它会自动解压缩,准备检查输出 .apk,

这解决了我的问题

【讨论】:

以上是关于Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

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

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

使用 Flutter 在 Android Studio 中自动完成功能无法正常工作 - 第一个建议无关紧要

Android Studio LibGDX 中的更新方法问题

Android Studio AVD - 模拟器:进程以退出代码 1 完成

Android studio:Gradle构建完成时出错