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

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