Flutter:线程异常 "main" java.util.zip.ZipException:打开 zip 文件时出错

Flutter: Exception in thread "main" java.util.zip.ZipException: error in opening zip file

我在android studio 3.5 中创建了一个新的flutter 项目,但是遇到错误

Exception in thread "main" java.util.zip.ZipException: error in opening zip file

解决方案的努力:this, this但对我不起作用。

经过数小时的努力,我想出了解决方案。
我已将 gradle 包装器属性分发 url 版本更改为:5.5.1-all,它在我的系统中可用。
由于某种原因,android studio 正在获取我的系统中没有的最新版本。

将android->gradle->wrapper->gradle-wrapper.properties中的distributionUrl改为distributionUrl=https ://services.gradle.org/distributions/gradle-4.10.1-all.zip

下载 Graddle 文件时肯定有错误。检查 gradle/wrapper/gradle-wrapper.properties graddle_wrapper_properties_rectified_image

中的以下代码
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-7.1-all.zip //change 7.1 to latest version available in below website

在我的例子中,'https' 之后有一个额外的 ':' 并且该数字是旧版本,但更正它对我有用。您可以参考以下网站了解文件类型“all.zip”的最新可用版本,并正确更新数字或整个 link,因为它大约为 150 MB。您需要有一个有效的互联网连接并按一次 运行 等待一段时间。在看到任何红线之前无需担心。

https://services.gradle.org/distributions/

  1. 浏览到 the official Gradle Distributions webpage 并检查 gradle all.zip 文件的最新版本是什么,例如(在撰写本文时)gradle-6.7-all.zip并复制地址

  2. 转到您的 Flutter 项目下拉列表,

    下拉 android>gradle>包装器

  3. Select gradle-wrapper-properties

  4. 粘贴您之前复制的 URL。例如:

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

我遇到了同样的问题。在我的例子中,distributionUrl 属性 中有一个额外的斜线。我使用这个网站 https://services.gradle.org/distributions/ 来获取 gradle -all.zip 的最新发行版。 (你会得到类似的东西: https://services.gradle.org/distributions/gradle-6.7.1-all.zip)

然后,像这样在 gradle-wrapper.properties 文件中使用它:

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

Select 来自 gradle distributions 的合适的 Gradle 版本与你的 IDE.

例如,我有一个 android 工作室建于 2020 年 12 月 2 日
gradle-6.8-rc-2-all.zip 2020 年 12 月 17 日对我来说工作正常。

错误表示有 incomplete/corrupted gradle.*.zip 文件下载。在 gradle-wrapper.properties 中找到您的项目使用的 gradle 版本,版本应在 distributionUrl 值中指定。

移动到{user-home}/.gradle/wrapper/dists/{gradle-version}/{generated-folder}/* 并删除文件夹中的所有文件。

重新运行您的项目应该下载 gradle 文件

当您无法将所需的 gralde 文件下载到 运行 您的项目时,会发生这种情况。您可以从 gradle 分发站点手动下载并放入文件夹以解决问题。

我通过进入解决了它 android/gradle/gradle-wrapper.属性 并粘贴这些行:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip

尝试将您的 distributionUrl 更改为 gradle-7.1-all.zip

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

如果您的互联网连接不稳定,您可以尝试手动设置: 首先,从https://services.gradle.org/distributions/下载最新的gradle...-all.zip并解压。

目前最新版本是:https://services.gradle.org/distributions/gradle-7.3.1-all.zip

然后,执行描述的步骤 here:

  1. Open <path_to_flutter_app>/android/gradlew

  2. Find: CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar and replace with: CLASSPATH=<path_to_downloaded_gardle>/gradle-7.3.1/lib/gradle-launcher-4.6.jar

  3. Find: exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" and replace with: exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.launcher.GradleMain "$@"

  4. flutter run