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】:只需像这样将distributionUrl
更改为最新:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-all.zip
它将下载所有必要的 gradle 文件和你的好去处。
【讨论】:
【参考方案2】:此问题的原因之一(自 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
希望这会有所帮助。
【讨论】:
【参考方案3】:如果您的互联网计划有限,请使用以下方法。
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 目录会消耗双倍的数据。
谢谢
【讨论】:
【参考方案4】:我遇到了同样的问题
转到 C:\Users\Jesus Navas.gradle\wrapper\dists\gradle-3.3-all(您的 gradle 版本)。
擦除当前的 gradle 版本并在 cmd "ionic build android" 中再次写入。
但是,你的 gradle 会再次下载,然后它会自动解压缩,准备检查输出 .apk,
这解决了我的问题
【讨论】:
【参考方案5】:在最新版本的 Android Studio 文件中 -> Invalidate Caches / Restart 值得一试。
【讨论】:
【参考方案6】:我在将现有项目导入 Android Studio 时也遇到了类似的问题,这可能是由于两个不同 Android Studio 平台之间的 gradle 版本不匹配而发生的。
解决方案(在 Mac OS 上):
-
关闭 Android Studio。
在 User/.gradle/ 找到 .gradle 文件夹
删除文件夹并清除垃圾箱。
重新启动 Android Studio 并同步您的项目。它将重新下载 gradle 插件和配置。
【讨论】:
【参考方案7】:删除 .gradle 文件夹对我有用。删除 .gradle 文件夹后问题解决
【讨论】:
【参考方案8】:我遇到了同样的问题,为了解决这个问题,我下载了最新版本的 gradle:
https://services.gradle.org/distributions
然后在右侧栏中打开gradle,然后选择gradle参数并将旧gradle的路径更改为新的。
【讨论】:
【参考方案9】:对我来说,解决此错误的方法是将 ../gradle/wraper/gradle-wrapper.properties 中的 gradle 包装器版本更改为不同/更新的版本。我使用的是:
distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip
然后调用:
./gradlew --refresh-dependencies
这告诉包装器指向一个新版本并重新下载所有必需的依赖项。我怀疑我的错误是由于首次构建相关项目时下载中断造成的。
【讨论】:
【参考方案10】:您只需编辑build.gradle
文件。
您应该将类路径设置为最新的 gradle 版本
dependencies
classpath 'com.android.tools.build:gradle:1.5.0'
并同步项目。所有错误都会消失。您可以做的是,在 android studio 中创建新项目,该项目将具有最新 gradle 的类路径并将其粘贴到具有 Cause: error in opening zip file.
此错误的项目中。
【讨论】:
【参考方案11】:清除 .gradle 目录并没有帮助,但清除 build 目录对我来说已经完成了这项工作。
【讨论】:
【参考方案12】:我通过以下方式解决了同样的问题:
转到文件 -> 设置 -> Gradle
在“Gradle VM options:”框中输入以下内容:-XX:MaxHeapSize=256m -Xmx256m
点击应用,Android Studio 应该会成功构建您的项目。
【讨论】:
【参考方案13】:我有同样的问题,在打开和关闭杰克和吉尔工具链后发生。我尝试删除 .gradle 但没有帮助。删除我的项目文件夹中的 build 目录可以解决问题。
在删除 .gradle 之前试试这个,因为它需要将近 200MB 的下载量。
【讨论】:
【参考方案14】:我通过...解决了这个问题
进入设置...> Gradle 选择“使用本地 Gradle 分发”。 指向我的 Gradle zip 文件:home/kersting/.gradle/wrapper/dists/gradle-1.12-all/6vpvhqu0efs1fqmqr2decq1v12/gradle-1.12如果您下载了 Gradle,您应该会得到类似的东西,而您在下载 Android Studio 时应该拥有。请注意,.gradle 文件可能会被隐藏。我是通过终端找到的,但是“ls”没有显示出来。
【讨论】:
【参考方案15】:“打开 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
缓存都会损坏以上是关于Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错的主要内容,如果未能解决你的问题,请参考以下文章
Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错
Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错
使用 Flutter 在 Android Studio 中自动完成功能无法正常工作 - 第一个建议无关紧要
Android Studio LibGDX 中的更新方法问题