Android SDK下載異常(hostname in certificate didn't match),androidhostname
對於Android開發人員來說,每次下載更新 Android SDK 都是一次痛苦的經曆,因為 google 被牆,每次我們都要想盡辦法來更新 SDK, 以前我是通過 VPN 來下載 SDK,但是也只能保證稍微穩定一點的下載速度,每次更新還是要耗費很長的時間來等待,上星期我的同事發現通過修改 hosts 檔案並將網域名稱指向 203.208.46.146 即可加快速度,而且下載速度基本上都是4,5M左右,這讓我驚喜異常,說實話,其實我甚至大家都很早知道可以通過修改 host 檔案來提高 SDK 下載速度,但是把網域名稱指向哪裡是一個問題,以前我曾經按照一篇文章來試過修改 host ip 的方法,先通過http://ping.chinaz.com 來 ping http://dl-ssl.google.com 這個網域名稱(Android SDK所用的網域名稱),然後點擊查詢即可,:
可見這個網域名稱已經完全被牆掉,國內基本上沒有可以 ping 通的地方,有的博文說可以試下 海外 的 ip,於是我在監測點上只選擇了 海外,查詢後結果如所示:
基本上都可以 ping 通,而且速度還很不錯,有的博文會推薦使用這些響應IP,但是我曾經試過,在 hosts 檔案中將 SDK 下載網域名稱指向這些 ip 之後依然無法下載 sdk,我們可以直接 ping 下ip,以 荷蘭 的 74.124.136.93 響應IP 為例,查詢結果如所示:
很明顯,這個位於美國的 IP地址 已經被牆掉了,事實上,所以我們將 hosts 中的 sdk 網域名稱指向這些 ip 其實並沒有作用,伺服器依然被牆。
那麼為什麼我們要將 hosts 中的sdk網域名稱指向 203.208.46.146 這個 IP 呢?我們照例來 ping 下它就會知道:
看到 IP歸屬地 我相信大家都已經明白了,這應該是 google 位於北京的伺服器,它的響應速度也是非常快的,我們將 sdk 網域名稱指向這個ip,由於伺服器就在北京,所以下載速度是非常可觀的,可以看下我修改後的下載速度:
基本上是4,5M 每秒的速度,更新完全部sdk也只花費了我很少的時間。
這裡再簡單講一下如何修改 hosts 檔案, Windows 的 hosts 檔案位於 C:\WINDOWS\system32\drivers\etc 這個位置,通過檔案瀏覽器直接進入這個目錄然後用編輯器修改 hosts 檔案即可;
Mac 的hosts檔案位於 /etc/hosts,我們可以通過 shell 命令列來操作它,sudo nano /etc/hosts 是直接調用出預設文字編輯器來操作的,我們也可以使用 VIM 或者其它編輯器 sudo vim /etc/hosts,使用 sudo 則是因為 hosts
檔案是系統檔案,操作它需要管理員權限,最後我們將以下內容粘貼儲存即可:
203.208.46.146 dl.google.com203.208.46.146 dl-ssl.google.com
注意前面不要加#號,否則這一行將被注釋掉。
修改完 hosts 檔案之後我們就可以開啟 eclipse,然後點擊菜單中的 Window —— Android SDK Manager 來下載更新 SDK 了,但是當我們勾選任務開始下載的時候,問題來了:
Download interrupted: hostname in certificate didn't match: != Download interrupted: Connection to https://dl-ssl.google.com refusedDone. Nothing was installed.
上面的異常資訊就是我們修改完 hosts 檔案之後下載 sdk 報的異常,異常資訊提示 dl-ssl.google.com 的 https 認證可能不正確,通過搜尋得知,我們可以將 Android SDK 下載預設使用的 https 協議改為未加密的 http 協議,這樣便能避免此異常的產生。
將 SDK 的 https 協議改為 http 協議的步驟如下:
- 在Eclipse菜單中選擇
Window —— Android SDK Manager即可開啟Android SDK 下載視窗;
- 在Android SDK下載視窗選擇
Preferences... 功能表項目開啟設定視窗;
- 最後在設定視窗勾選
Others中的第一項Force https://... sources to be fetched using
http...即完成操作。
完成修改之後,我們關閉設定視窗就可以正常且快速的下載 Android SDK了。
參考連結:
http://jingyan.baidu.com/article/1974b289ad9ad3f4b1f7749a.html
http://www.netfoucs.com/article/wsq2002/75368.html