概述
当我在环境环境:AS 3.5.1,gradle 3.5.1下新建一个项目时,遇到gradle sync非常慢的情况,点开同步详情发现卡在了jcenter资源的下载上,心想这是在墙内,所以很慢,因此,我就想到在网上找到国内的代理,很庆幸发现了阿里云的代理仓库。原理是通过修改AS新建项目时生成的默认根目录文件,该文件所依赖的是默认的google()和jcenter()地址,我们将这2个地址改成阿里云提供的仓库。
找到文件位置
mac位置:
/Applications/Android /Contents/plugins/android/lib/templates/gradle-projects/NewAndroidProject/root/
windows位置:
Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root
修改地址
将google()和jcenter()两行改成:
//replace mavenCentral() and jcenter() in china
maven { url ‘/repository/public/’ }
//replace google() in china
maven { url ‘/repository/google/’ }
//official address
mavenLocal()
mavenCentral()
google()
jcenter()
maven { url ‘’ }
其他类似。
这样gradle在查找依赖包时,就会按照上面的顺序从上往下查找。另外,加上官方默认的仓库地址,可以保证当大厂提供的代理没有对应的依赖包的时候,可以从官方下载,并且,使用AS搜索依赖包的地方也是从项目build文件的配置中去搜索的,若没有官方的地址,则会一直搜索不出来。
实际gradle sync速度
替换前:预估无限,卡在jcenter资源的下载上
替换后:6m21s
总结
创建一个新的空白项目,由于AS可能新建的项目使用了本地没有的android库版本,所以需要在此时下载,但使用默认的配置进行同步,很影响我们的工作效率,有的时候可能无法完成。但既然如此而且我们又是可怜的墙内程序员,那只好走国内大厂提供的代理,在此感谢大厂给广大程序员提供的福利。