WeChatOpenSdkSample项目无法打开,报Gradle错误

在集成微信功能的过程中,在打开微信的WeChatOpenSdkSample项目时,遇到了以下问题:

ERROR: Failed to open zip file.
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)

从错误提示的意思理解,是某些错误导致网络链接超时,经过排查发现不少网络问题,那就只能是gradle的问题了。

被gradle坑过的童鞋肯定知道,gradle报的好多错误提示都跟真正的错误八竿子打不着的,所以接着看是不是gradle缓存的问题。

删除gradle缓存的文件,重新下载

我在stackoverflow上找到了一个一样的问题Error:Failed to open zip file. Gradle’s dependency cache may be corrupt,它的解决方式是让我删除~/.gradle/wrapper/dists目录下的所有文件,然后重新打开ide,此时ide会重新下载gradle依赖。

经过尝试,这个方法对我无用,这说明我本地的gradle缓存是正确的,问题的根源在别的地方。

对比gradle配置

既然没办法,就只能出大招了,找一个正常的项目来和报错的项目进行对比。既然项目打开的时候就报错,那大概了是gradle配置的问题,所以我们关注点就在主要在gradle/wrapper/gradle-wrapper.properties文件里面,我们看下它们具体内容:

报错的项目:

#Wed Apr 12 10:05:56 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http://android.oa.com/gradle/gradle-4.7-all.zip

正确的项目:

#Thu Oct 17 10:01:43 CST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

对比之后发现,distributionUrl不一致,报错的项目配置的不是as项目自带的路径,所以我们把这个路径改成一致的,原有的版本号4.7保留,结果如下:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip

接着同步项目,发现同步成功了。这里需要说明的是,distributionUrl是用来下载gradle压缩包的,它可以更改成代理地址或者本地的缓存文件地址。这里报错项目的distributionUrl明显是修改为它们自己使用的代理了,所以我才会同步不成功。

参考

Error:Failed to open zip file. Gradle’s dependency cache may be corrupt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章