要用 Eclipse 做 Android 開發,當裝好了 ADT(Android Deveopment Tooling) 之後(可參考前一篇《[Android]Eclipse 安裝 ADT[Android Development Tooling] 失敗的兩種解決辦法》),接下來就會遇到 Android SDK Manager 無法正常更新的問題,因為 GFW 的關系,無法直接訪問 https://dl-ssl.google.com,這個問題比更新 ADT 還要嚴重一點。我們在上一篇裡通過設置代理 http://127.0.0.1:8087 轉到 GoAgent 裡來實現訪問 ADT 的更新地址,在這裡,我們遇到了一個新的問題,由於 GoAgent 從 3.1.x 版本開始,對於 https:// 或者 SSL 訪問會出現這樣一個錯誤:
Error: [('SSL routines', 'SSL3_READ_BYTES', 'sslv3 alert certificate unknown')]
從而導致無法正常更新 Android SDK Manager 。
在以前,可能這樣做就可以了,即在 Android SDK Manager 從菜單 Tools 裡選 Options... ,按如下設置即可(看劃紅線的單選項):
即強制使用 http:// 而不使用 https://,可是現在由於 GoAgent 新版的原因(v3.2.3),會報前面提到那個錯誤,從而無法更新。
既然正常更新和使用 GoAgent 都不行,那麼我們可以想想科學上網的辦法,《Android sdk manager 無法更新解決方法》,設置好,可以下載了,可是速度有點慢,截圖如下:
速度大約是 10-40 KB/s 左右,更新是可以更新了,可是想想那麼多軟件包要更新,要下載到猴年馬月啊,所以我們還得另外想辦法,如果你有快速且免費的 VPN,當我什麼也沒說。
既然 GoAgent 報錯,我們就想辦法解決這個錯誤,這個的確不是很好找,一開始我也沒找到,可是看了上面的下載速度後,我還是決定一定要解決它。功夫不負有心人,終於找到了原因和解決辦法,詳細請看:Issue 17951: sslv3 alert certificate unknown 和 Issue 17116: 利用GAE無法代理升級Android SDK ,解決的辦法是:
3.2版本在 proxy.ini 裡的 [profile] 下加上如下配置即可更新 Android SDK 了:
dl-ssl.google.com = nocrlf,noforcehttps,nofakehttps
注:這裡有個前提,就是你必須保證 GoAgent 的 CA 證書是已導入的(在你更新了 GAE 上的 GoAgent 或 本地的 GoAgent 的版本以後,可能要重新導入證書),具體導入方法可以看前面提到的 Issue 17951 裡的介紹,或者自己 Google 。
導致這個錯誤的具體原因不明,從解決方案的字面意思上來看,nocrlf(無回車換行符), noforcehttps(不強制使用 https), nofakehttps(不使用/不允許虛假 https)。反正現在好使了,截圖如下:
500多 KB/S 基本上是我的寬帶的極限速度,還不錯,雖然有些時候 GoAgent 也會慢下來,但是大多數時候速度還是可以的,免費的能這樣,已經很滿意了。
問題解決,希望對你有所幫助。
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11