Gradle依赖缓存损坏致Zip文件无法打开,项目构建失败求助
解决Gradle 4.4的ZipException:无法打开压缩文件问题
从你贴出的栈追踪信息来看,问题的核心其实不是Gradle自身的缓存损坏(毕竟你已经尝试过清理.gradle文件夹等操作),而是项目依赖的某个Jar包下载不完整、本身损坏,或者在本地仓库中出现了异常——NonIncrementalJarDexArchive这个类是Android构建工具在处理要转成Dex的Jar包时触发的错误,说明是具体的依赖Jar出了问题。
试试下面这些针对性的解决方案:
检查并清理本地仓库的损坏Jar包
你的本地依赖仓库默认路径一般是:- Windows:
C:\Users\<你的用户名>\.m2\repository和C:\Users\<你的用户名>\.android\build-cache - Mac/Linux:
~/.m2/repository和~/.android/build-cache
进入这些文件夹,搜索所有.jar文件,重点关注那些大小异常小的(比如只有几KB,正常依赖Jar一般至少几十KB),直接删除它们。之后重新同步项目,让Gradle重新下载完整的依赖包。
- Windows:
强制Gradle重新校验并下载依赖
在项目根目录的gradle.properties文件中添加以下配置:org.gradle.caching=false org.gradle.dependency.verification=strict然后在终端执行命令(Windows系统把
./gradlew换成gradlew.bat):./gradlew clean build --refresh-dependencies这条命令会强制Gradle忽略本地缓存,重新下载所有依赖并校验它们的完整性。
定位具体损坏的依赖Jar
如果上面的方法还没解决问题,你可以让Gradle打印更详细的日志,精准找出出问题的Jar包:
执行命令:./gradlew assembleDebug --info | grep "Failed to open zip file"日志里会明确显示是哪个路径下的Jar包损坏,直接删除该Jar后重新同步项目即可。
校验Gradle与Android插件的版本兼容性
Gradle 4.4对应的Android Gradle Plugin稳定版本应该是3.1.x系列,你可以打开项目根目录的build.gradle文件,确认dependencies块中的插件版本:dependencies { classpath 'com.android.tools.build:gradle:3.1.4' // 3.1.x的稳定版本均可 }版本不匹配也可能导致依赖处理过程中出现异常。
内容的提问来源于stack exchange,提问作者jonasxd360
相关产品推荐
相关产品推荐

