解决Android Studio报错 Cause: error in opening zip file

   今天把android Studio升级到3.0后,在打开原来的一个项目时,该项目构建时,出现了以上的错误。

原来,我的project下的gradle文件夹下的wrapper文件夹下的gradle-wrapper.properties文件中,我设置的gradle的版本是gradle-3.3-all的,即如下:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

然后经过提示,3.0版本的studio告诉我,要用的gradle最小版本是4.1及以上的,因此,我下载了gradle-4.1-all-with-ID.zip文件,并将其解压到我的C:\Users\xxx\.gradle\wrapper\dists目录下,然后将gradle-wrapper.properties文件中的 distributionUrl的值改为:

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

我本以为这样改完再次构建就能成功了,结果发现报了标题中提到的错误。按说我改完gradle-wrapper.properties文件中的gradle版本,它在构建的时候就会自动去我的c盘下的.gradle\wrapper\dists文件夹下的对应版本的gradle。然后看了网上的问题,有个答案是说把project下的.gradle文件夹和c盘下的.gradle文件夹都删掉。然后再次编译该工程,它就会自动下载gradle版本到.gradle文件夹下。想了下,国内这些网都被墙,要让它自动下载gradle咋可能呢。而且本来我的C:\Users\xxx\.gradle\wrapper\dists目录下的gradle在以前其他项目下都是能用的。

    因为C:\Users\xxx\.gradle\wrapper\dists目录下原来我有好几个gradle版本包,有gradle-2.14-all、gradle-3.3-all还有今天刚放进去的gradle-4.1-all版本,于是我把其他两个都删了,只在C:\Users\xxx\.gradle\wrapper\dists目录下保留了gradle-4.1-all版本。然后我再次编译这个project,结果,结果看到它竟然悄悄的在C:\Users\xxx\.gradle\wrapper\dists目录下给我下载gradle-3.5-bin版本。至此,我就纳闷了。我的gradle-wrapper.properties文件中配的是4.1的版本,它怎么又会去给我下载3.5-bin呢,什么鬼?于是。我在想,可能是我在哪里把这个项目设置成gradle的默认版本就是3.5.其实问题也正是在这里。

好啦,扯了上面那么多,具体步骤其实就是;

1.把你的gradle-wrapper.properties文件中的gradle版本设置成4.1版本。

2.在C:\Users\xxx\.gradle\wrapper\dists下放置gradle版本。

3.在设置里检查你的gradle是不是设成了其他版本,如果是,请改成4.1版本所在的位置。操作如下:

android studio中在File——>Settings——>Build,Execution,Deployment——>Gradle中,将Project-level settings选项下选择Use local gradle distribution(未改之前我选的是Use default gradle wrapper(recommend),可能是我以前选这个并设成了3.5-bin版本吧),并将其路径设置成你本地的gradle-4.1-all版本的路径,我的gradle-4.1-all在C:\Users\xxx\.gradle\wrapper\dists下,这里要指定的路径要到gradle-4.1-all文件夹下的一长串id文件夹下的gradle-4.1文件夹.不然会提示路径选择错误。例如,我的是:

C:/Users/xxx/.gradle/wrapper/dists/gradle-4.1-all/bzyivzo6n839fup2jbap0tjew/gradle-4.1
当然,选项中的 Service directory path的也要是C:/Users/BaiJie/.gradle(我的默认是这个)

经过以上的操作后,我再次编译该project,就没有报这个错了。希望对您有用。


你可能感兴趣的:(android)