Flutter移动端Gradle构建失败求助:zip END header not found错误
检查依赖缓存完整性:
zip END header not found本质是依赖jar包下载不完整或损坏。找到Flutter项目的Android依赖缓存目录(一般是~/.gradle/caches/modules-2/files-2.1),搜索报错的依赖(比如org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2),删除对应的文件夹,然后重新执行flutter run让Gradle重新下载完整的依赖包。强制刷新依赖并重新构建:执行以下命令,彻底清理并重新拉取依赖:
flutter clean cd android ./gradlew cleanBuildCache ./gradlew --refresh-dependencies assembleDebug cd .. flutter run切换Gradle镜像源:国内网络环境可能导致依赖下载不全。修改项目中
android/build.gradle文件里的仓库配置,替换为国内镜像:repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } google() mavenCentral() }同时检查用户本地的
~/.gradle/init.gradle(如果没有就新建),添加全局镜像配置:allprojects{ repositories { def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public' def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter' def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google' def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL." remove repo } if (url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL." remove repo } if (url.startsWith('https://dl.google.com/dl/android/maven2/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL." remove repo } if (url.startsWith('https://plugins.gradle.org/m2/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL." remove repo } } } maven { url ALIYUN_REPOSITORY_URL url ALIYUN_JCENTER_URL url ALIYUN_GOOGLE_URL url ALIYUN_GRADLE_PLUGIN_URL } } }验证本地Gradle版本:检查项目
android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl,确保使用的Gradle版本与项目兼容。如果版本过低,尝试升级到稳定版本(比如gradle-7.4-all.zip),然后删除本地.gradle/wrapper/dists中对应的版本目录,重新执行构建。检查网络连接:确保网络稳定,没有代理或防火墙阻止Gradle下载依赖。如果使用代理,需要在
gradle.properties中配置正确的代理信息:systemProp.http.proxyHost=你的代理地址 systemProp.http.proxyPort=代理端口 systemProp.https.proxyHost=你的代理地址 systemProp.https.proxyPort=代理端口不需要代理的话,注释掉这些配置。
内容的提问来源于stack exchange,提问作者ARVIN KUMAR

