执行flutter run命令后出现zip END header not found错误求助
解决Flutter run时Gradle Zip损坏问题
错误原因
出现java.util.zip.ZipException: zip END header not found是因为Gradle wrapper的压缩包下载不完整或损坏,导致解压失败,进而触发assembleDebug任务失败。
解决方案
- 删除项目内的Gradle wrapper缓存文件:找到项目根目录下的
gradle/wrapper/gradle-wrapper.jar,直接删除该文件。 - 重新执行
flutter run,系统会自动重新下载完整的Gradle wrapper包。 - 若自动下载仍失败,手动处理:
- 打开项目中
gradle/wrapper/gradle-wrapper.properties文件,找到distributionUrl对应的Gradle下载链接。 - 手动下载该链接的zip包,不要解压。
- 找到本地Gradle缓存目录:
- Windows:
C:\Users\[你的用户名]\.gradle\wrapper\dists - Mac/Linux:
~/.gradle/wrapper/dists
- Windows:
- 在缓存目录中找到对应Gradle版本的文件夹,将手动下载的zip包替换进去。
- 打开项目中
- 最后执行
flutter clean清理项目缓存,再重新运行flutter run。
错误日志
Exception in thread "main" java.util.zip.ZipException: zip END header not found at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1607) at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1497) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1504) at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1308) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1271) at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:733) at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:850) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:248) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:191) 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:65) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
内容的提问来源于stack exchange,提问作者tual
相关产品推荐
相关产品推荐

