December 25, 2018

Android Studio Gradle代理配置指南

Android Studio 用户的代理配置指南,真正有效的 gradle 代理配置方式。

#gradle依赖拉不下来真让人躁郁,自从从ant换成gradle,新的依赖都必须在线编译,(离线编译经常由于本地gradle home包完整性验证失败而不好使),不清楚是gradle.org屏蔽大陆地区访问,还是被gfw标记拦截,但尝试从gradle.org走https web/tls仍然是可以正常打开,所以如果要从敏感过度的socks协议下载还是有些麻烦.

大多数情况下,你用的应该是 营养科学上网开socks5服务 作为代理客户端,如果是的话接下来这么操作:

Manual proxy configuration 下面选择 Socks ,然后填入 Host name(一般是proxyip ,然后 Check connection 试一下应该就可以了。这里主要是 Android Studio 自己用的配置,检查更新、上报使用情况之类的。

Gradle Proxy

更换 maven 仓库

编辑项目的根目录下 build.gradle ,修改 repositories block 的内容,添加阿里云的 maven 镜像,修改完之后文件大概是这个样子的:

buildscript {
    ext.kotlin_version = '1.3.11'
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        google()
    }
}


配置代理

配置阿里云 maven 镜像可以加快同步速度并且解决大半个问题,不过有些东西可能还是依赖 Google 的仓库(不过 dl.google.com 好像又是可以直连的),然而还是时不时的可能出现各种问题。所以,配置下面的代理是有必要的。

设置代理的方法主要是在 gradle.properties 里加上这样的配置:

systemProp.https.proxyHost=socks5://proxyip
systemProp.https.proxyPort=1080

这种写法的语义就是把socks的代理转换成https供给本地gradle仓库,当然可能还是不行,还不行的话就换成:

org.gradle.jvmargs=-DsocksProxyHost=proxyip -DsocksProxyPort=1080

更改全局配置 如果搭建本地自动编译时连不上gradle.

则将以上更改作用于 ~\.gradle\gradle.properties