问题描述:使用ADT工具的SDKManager下载和更新Android SDK非常方便,一切自动完成,但是有两次SDKManager出问题了,许多内容无法完成更新。于是进行了了解。以下内容参考了网络资料,具体地址忘记录了。
具体问题:
使用SDK Manager更新时出现问题
Failed to fetch URLhttps://dl-ssl.google.com/android/repository/repository-6.xml,reason: Connection to https://dl-ssl.google.com refused
Failed to fetch URLhttp://dl-ssl.google.com/android/repository/addons_list-1.xml,reason: Connection to http://dl-ssl.google.com refused
Failed to fetch URLhttps://dl-ssl.google.com/android/repository/addons_list-1.xml,reason: hostname in certificate didn't match: !=
更新ADT时无法解析https://dl-ssl.google.com/android/eclipse
由于某些众所周知又无法理解的原因,我们大陆使用Google的服务会出现种种问题,譬如Android开发也会出现阻碍。不过首先要说明的是一般情况下使用SDK Manager更新或者更新Eclipse的ADT插件是没有问题的,我以前也能正常更新,但是昨天不知道节点抽什么风,压根无法连接服务器,出现了上边的种种问题,下面说一下如果网络抽风的话应该如何解决问题。
第一种方法一劳永逸,直接配置VPN,但是现在想找个速度快又稳定还免费的VPN实在不易,尤其是更新SDK,以几kb/s的速度一个文件需要400多分钟,所以也就放弃了VPN。
另一种方法是使用http协议而不是https协议,因为https协议进行了加密处理,大陆因为无法审查,直接封死,而http协议则进行过滤处理,如果不访问乱七八糟的东西,更新个SDK还是没问题的。
在SDK Manager下Tools->Options打开了SDK Manager的Settings,选中“Force https://… sources to be fetched usinghttp://…”,强制使用http协议。
而在更新ADT插件的时候则使用网址http://dl-ssl.google.com/android/eclipse,而不是https://dl-ssl.google.com/android/eclipse,这个在官方开发文档里也有介绍。
但是可能使用http协议也无法访问。
再说一个比较麻烦的方法,就是直接打开
https://dl-ssl.google.com/android/repository/addons_list.xml https://dl-ssl.google.com/android/repository/repository.xml
https://dl-ssl.google.com/android/repository/addon.xml
这几个文件,找到你要下载的文件名,直接用迅雷下载,ADT可以直接在官网下载ADT包进行安装。具体方法自己搜索。
最好的方法还是改hosts文件的方法,更新速度较快。Windows在C:\WINDOWS\system32\drivers\etc目录下,Linux用户打开/etc/hosts文件。
打开文件后添加以下内容。
#Google主页
203.208.46.146 www.google.com
#这行是为了方便打开Android开发官网 现在好像不VPN也可以打开
74.125.113.121 developer.android.com
#更新的内容从以下地址下载
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
添加以上的网址,再选用http协议,就可以正常的进行更新了。
或者也可以什么都不做,过上一两天可能会恢复正常。
我的解决办法:
我的SDKManager一直无法正常下载,于是按照上面的方法,先将https改为http,仍然不行,于是又将C:\WINDOWS\system32\drivers\etc中的host文件添加上面的内容后(WindowsXP),能正常下载了!
host文件,导致google的develop网站无法登陆了,将host改回来再试。将原来添加到host中的内容去掉,并在网址栏弹出的重定向中点击,并删除掉develop.com的保护,就能正常打开网页了。后面需要利用SDK下载器时再继续改回来就行。