flutter 编译报错java.util.zip.ZipException: zip END header not found
文章目录
- 问题报错
- 问题解决
- 解决方案:
- 1. **删除损坏的 Gradle 文件并重新下载**
- 2. **手动下载并替换 Gradle 文件**
- 3. **清理并重建项目**
- 4. **使用特定版本的 Gradle**
- 5. **检查磁盘空间和权限**
- 6. **禁用防病毒软件**
问题报错
Launching lib\main.dart on m2 in debug mode…
Running Gradle task ‘assembleDebug’…
Exception in thread “main” java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFileSource.zerror(ZipFile.java:1607)atjava.base/java.util.zip.ZipFileSource.zerror(ZipFile.java:1607) at java.base/java.util.zip.ZipFileSource.zerror(ZipFile.java:1607)atjava.base/java.util.zip.ZipFileSource.findEND(ZipFile.java:1497)
at java.base/java.util.zip.ZipFileSource.initCEN(ZipFile.java:1504)atjava.base/java.util.zip.ZipFileSource.initCEN(ZipFile.java:1504) at java.base/java.util.zip.ZipFileSource.initCEN(ZipFile.java:1504)atjava.base/java.util.zip.ZipFileSource.(ZipFile.java:1308)
at java.base/java.util.zip.ZipFileSource.get(ZipFile.java:1271)atjava.base/java.util.zip.ZipFileSource.get(ZipFile.java:1271) at java.base/java.util.zip.ZipFileSource.get(ZipFile.java:1271)atjava.base/java.util.zip.ZipFileCleanableResource.(ZipFile.java:733)
at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:850)
at java.base/java.util.zip.ZipFile.(ZipFile.java:248)
at java.base/java.util.zip.ZipFile.(ZipFile.java:177)
at java.base/java.util.zip.ZipFile.(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)
Error: Gradle task assembleDebug failed with exit code 1
问题解决
这个错误表明 Gradle 的 ZIP 文件损坏或不完整。这通常发生在 Gradle 下载过程中断或文件未完整下载时。以下是解决方案:
解决方案:
1. 删除损坏的 Gradle 文件并重新下载
- 找到 Gradle 缓存目录:
- Windows:
C:\Users\<你的用户名>\.gradle\wrapper\dists\
- macOS/Linux:
~/.gradle/wrapper/dists/
- Windows:
- 删除与你的项目所需的 Gradle 版本对应的文件夹(例如
gradle-7.5-all
) - 重新运行
flutter run
,让 Gradle 重新下载完整文件
2. 手动下载并替换 Gradle 文件
- 查看项目所需的 Gradle 版本:
- 打开
android/gradle/wrapper/gradle-wrapper.properties
- 找到
distributionUrl
行,记下 Gradle 版本号(例如gradle-7.5-all.zip
)
- 打开
- 手动下载正确版本的 Gradle:
- 访问 https://services.gradle.org/distributions/
- 下载对应版本的 ZIP 文件(例如
gradle-7.5-all.zip
)
- 替换文件:
- 将下载的文件复制到 Gradle 缓存目录中对应的文件夹
- 路径类似:
C:\Users\<用户名>\.gradle\wrapper\dists\gradle-7.5-all\<随机字符串>\
3. 清理并重建项目
在项目根目录运行以下命令:
flutter clean
rm -rf android/.gradle # 在 Windows 上使用: rmdir /s /q android\.gradle
flutter pub get
4. 使用特定版本的 Gradle
如果问题持续,可以尝试在 android/gradle/wrapper/gradle-wrapper.properties
中指定一个不同的 Gradle 版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
5. 检查磁盘空间和权限
- 确保有足够的磁盘空间
- 确保对 Gradle 目录有读写权限
6. 禁用防病毒软件
某些防病毒软件可能会干扰 Gradle 的文件操作,暂时禁用它们可能有助于解决问题。
完成上述步骤后,重新运行 flutter run
。如果问题仍然存在,请尝试创建一个新的 Flutter 项目来测试是否是当前项目特有的问题。
结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!