Flutter从1.22.6升级至2.2后运行项目Gradle下载构件报ZipException如何解决
问题根因
报错中出现的java.util.zip.ZipException: error in opening zip file是因为Gradle Wrapper对应的版本压缩包在之前下载过程中出现断流、数据丢失,导致本地缓存的压缩包损坏无法解压。你之前调整Gradle版本未生效,是因为本地缓存的损坏包没有被清理,每次运行都会尝试读取损坏的压缩文件。
解决步骤
- 第一步:删除本地损坏的Gradle缓存包
根据你的操作系统进入对应目录:- Windows:
C:\Users\你的系统用户名\.gradle\wrapper\dists - Mac/Linux:
~/.gradle/wrapper/dists
找到你当前项目使用的Gradle版本对应的文件夹直接删除,不确定的话可以删除dists目录下所有内容,缓存删除后不会影响原有项目,后续运行时会自动重新下载需要的Gradle版本包。
- Windows:
- 第二步:替换Android项目的镜像源(避免下载时再次出现包损坏的问题)
打开Flutter项目下的android/build.gradle文件,修改buildscript和allprojects代码块中的repositories配置,替换为国内镜像:buildscript { ext.kotlin_version = '1.5.31' repositories { // 注释掉原有google()、jcenter()等默认源 maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' } } dependencies { classpath 'com.android.tools.build:gradle:4.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { // 注释掉原有google()、jcenter()等默认源 maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' } } } - 第三步:重新运行项目
在Flutter项目根目录依次执行以下命令:
此时会自动重新下载完整的Gradle压缩包,解压完成后即可正常运行项目。flutter clean flutter run
内容的提问来源于stack exchange,提问作者CharlyKeleb
相关产品推荐
相关产品推荐

