运行Flutter应用时Gradle报zip END header not found错误如何解决
java.util.zip.ZipException: zip END header not found 本质是Gradle构建所需的压缩包下载不完整、或本地缓存的压缩包已损坏,无法正常解压导致构建失败。
第一步:清理损坏的Gradle缓存包
找到本地Gradle缓存目录:
Windows默认路径:C:\Users\你的系统用户名\.gradle\wrapper\dists
macOS/Linux默认路径:~/.gradle/wrapper/dists
打开项目android/gradle/wrapper/gradle-wrapper.properties文件,找到distributionUrl字段对应的Gradle版本号,回到缓存目录删除对应版本名称的文件夹,重新运行项目会自动下载全新的Gradle压缩包。第二步:配置国内镜像避免下载损坏
打开项目android/build.gradle文件,替换buildscript和allprojects块下的repositories配置为国内镜像,示例如下:buildscript { ext.kotlin_version = '1.7.10' repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } } }同时可将
gradle-wrapper.properties里的distributionUrl替换为国内镜像的Gradle下载地址,进一步提升下载成功率。第三步:清理项目缓存重启构建
终端执行以下命令:flutter cleanflutter pub get
执行完成后重新运行项目即可。第四步:兜底排查方案
如果以上步骤均无效,可删除本地Flutter SDK文件夹,重新下载官方稳定版Flutter SDK,重新配置环境变量后再运行项目。
内容的提问来源于stack exchange,提问作者Tr0jAn

