android studio默认使用gradle来构建项目,众所周知,在构建的时候,gradle工具的下载速度非常缓慢,很多时候我们项目就阻塞在这里,而且很容易失败,本文给出一个解决方案!
当然,首先你需要翻墙,这个是必然的。
其次,打开我们的项目,先不要进行sync或者sync失败的时候,在该工程目录下,打开terminal(可以在ide中直接打开),然后输入以下命令
./gradlew --version
这个命令如果发现gradle wrapper对应的版本没有被下载,则会尝试下载该版本,同时会在./gradle/wrapper/dists这个文件夹下产生对应版本的文件夹。如下所示:
这个时候我们先执行ctr + c命令,终止下载,然后复制我们要下载的链接(一般在下载之前会给出提示),如果没有下载链接,我们可以打开下面链接:
http://services.gradle.org/distributions/
然后选择自己的版本,通过浏览器下载即可。
最后,下载完成后,将对应版本的gralde压缩包移到./gradle/wrapper/dists目录下对应的版本文件夹下面,比如上面的455itskqi2...sja68alqd文件夹下,这个文件夹是以hash值命名的文件夹,你的文件夹可能和这个不同,但肯定类似,也是一堆hash值。此外,还需要注意,要先清空该文件夹,因为有刚刚下载未完成的中间文件。
移动完成之后,我们再执行./gradlew相关的命令,就可以使用了。
最后说一下我们常用的gradle和gradlew二者的区别:
我们经常看到很多文章,就是叫我们去下载某个gradle版本,然后再进行环境变量配置,最后我们就可以在任意命令窗口处使用该命令了,这个命令就是gradle。这种说法没有错,当我们固定使用gradle版本进行工程构建的时候,这种无疑最佳选择。
但是,我们发现android工程都附带有gradle-wrapper.properties这个文件,而且,在这里面可以指定gradle的版本,这个就是gradlew命令。google提供这种配置的原因是,希望屏蔽gradle版本及其对应命令的差异,即我们不再像上面所说的那样只能用特定的一个版本的gradle进行构建,毕竟android工程多种多样,gradle版本也五花八门(gradle也再不断进化嘛)。graldew正是屏蔽了这些细节。然而,因为是在国内,通过android studio下载该工具十分困难,所以反而在构建的时候引起了不小的麻烦。这也是我们通过浏览器下载的原因。
希望对你有所帮助。