Android Studio Gradle无法同步

疫情概要

截至2月9日24时,据31个省(自治区、直辖市)和新疆生产建设兵团报告,现有确诊病例35982例(其中重症病例6484例),累计治愈出院病例3281例,累计死亡病例908例,累计报告确诊病例40171例(湖北核减87例,江西、甘肃各核减1例),现有疑似病例23589例。累计追踪到密切接触者399487人,尚在医学观察的密切接触者187518人。

简介

由于新型冠状病毒肺炎在全国快速蔓延,导致小编于2020/02/10正式开启在家办公模式。

申请完公司VPN后,能够成功访问到公司内网。但是无法正常同步获取到dl.google.com和maven.google.com下的文件。一开始还以为是国内高墙的原因,折腾了好一阵子,结果还是不行,最后发现是DNS异常,导致无法访问到。

Gradle Sync Fail

问题原因

DNS异常,域名无法正常访问,直接使用IP可以正常访问。

解决方法

在hosts文件中手动添加索引,直接提供域名查询结果,从而绕开DNS。

以配置dl.google.com域名为例,操作步骤如下:

1.获取有效的IP地址

通过 IP查询网站,获取dl.google.com域名的IP地址

获取IP地址

2.通过ping命令检测各IP地址的有效性和连接速度

1
2
3
4
5
6
7
8
9
10
➜  ~ ping -c 4 203.208.50.69
PING 203.208.50.69 (203.208.50.69): 56 data bytes
64 bytes from 203.208.50.69: icmp_seq=0 ttl=115 time=58.021 ms
64 bytes from 203.208.50.69: icmp_seq=1 ttl=115 time=81.029 ms
64 bytes from 203.208.50.69: icmp_seq=2 ttl=115 time=53.690 ms
64 bytes from 203.208.50.69: icmp_seq=3 ttl=115 time=57.790 ms

--- 203.208.50.69 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.690/62.633/81.029/10.760 ms

-c命令指定ping次数,-c 4 表示ping4次。Mac 下ping命令不设置改参数会一直ping下去,除非用 control + c强制

可以多测试几个IP地址,找到连接时长最短的,即访问速度最快的。

3.在hosts文件中手动添加一条记录

Mac下的hosts文件在 /etc/下,操作如下:

  1. 终端下输入命令 sudo vim /etc/hosts(不使用sudo命令,打开的文件处于只读状态,无法编辑)
  2. 输入登录密码(由于使用了sudo提升为root权限,需要输入密码)
  3. 点击键盘上字母 I进入编辑模式,在最后一行输入 203.208.50.69 dl.google.com(格式为IP地址 域名)
  4. 点击 esc键退出编辑模式
  5. 输入 :wq,按回车
  6. 操作完成

4. 测试一下

现在可以测试一下下面这个文件能否正常下载

https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.0/gradle-3.2.0.jar

关于 maven.google.com域名的设置同上面一致。

注意:由于本方式指定了IP地址,当设置的这个IP地址失效时会导致对应的域名无法访问。

参考

解决连不上dl.google.com的问题

坚持原创技术分享,您的支持是对我最大的鼓励!