1. 程式人生 > >64位win7下Android SDK Manager閃退的解決方法

64位win7下Android SDK Manager閃退的解決方法

       最近突然對android很感興趣,於是搭建了android的開發環境。在搭建過程中遇到了各種各樣的問題,整整折騰了兩週的時間,所以把這些問題和解決方法記錄下來,算是對這兩週煎熬的一個總結和回饋。

1.下載和安裝

1.下載和安裝JDK

下載地址:

我的電腦是64位win7系統,所以下載的版本是:

安裝和環境配置在之前的文章中已經詳細敘述過了,這裡就不再贅述了。

2.下載和安裝SDK及Eclipse

安裝和配置好JDK後,下載Android SDK:

下載地址:

點選Download the SDK  ADT Bundle for Windows,

勾選I have read and agree with the above terms and conditions,

選擇64-bit,然後點選下載

將下載的檔案解壓到D盤,在D:\adt-bundle-windows-x86_64-20130729下有3個檔案:eclipse,sdk,SDK Manager.exe

配置SDK環境變數:

點選計算機“屬性”->“高階系統設定”->“環境變數”

修改Path的值,在原來的值後面加上“;D:\adt-bundle-windows-x86_64-20130729\sdk\tools“注意路徑前面的分號";"

到此為止,就搭建好Android的開發環境了,可以開發android程式了。

2.解決問題

1.SDK Manager閃退

前面的工作很簡單,基本不會遇到什麼問題,但是如果想要升級或者下載其他版本的話,就要執行SDK Manager.exe這個程式了。

在執行SDK Manager的時候出現了閃退的現象,sdk無法更新。於是就在網上搜索解決的方法,看來很多人都遇到了這種問題,回覆也是大同小異,無非是說JDK環境變數或者SDK的環境變數配置有誤,但是按照網上的說法去操作還是無法解決問題。

很多人是在確信JDK環境配置正確的情況下,依然無法正常執行SDK Manager。關於這種說法,我也試過很多次,甚至把java從Program Files解除安裝後,重新安裝到了c盤根目錄下(看到過有人說win7檔案路徑中不要有空格),結果還是沒有解決。

在折騰了一週後,從各位前輩遇到的問題和解決方法中意識到一個問題,那就是”跟系統有關”。於是一大早就把女友的本本(32位win7)借來試驗,結果一點問題沒有,執行SDK Manager.exe後就可以彈出了更新介面。

在SDK Readme中有這樣的描述:

From the command-line you can also directly trigger an update by
executing:
  tools\android.bat update sdk --no-ui

可以直接在命令列執行android.bat update sdk來更新,但是執行結果出錯:


從error資訊中,能看出來是android.bat在呼叫find_java.exe的時候出錯了。在lib目錄下開啟find_java.bat,可以看到剛才出錯的那條呼叫語句:

for /f %%a in ('%~dps0\find_java.exe -s') do set java_exe=%%a
if not defined java_exe goto :CheckFailed

於是我直接在命令列執行find_java.bat,得到的結果和剛才是一樣的:


直接執行find_java.exe,返回java.exe的路徑:


這樣就知道問題是在呼叫find_java.exe這條語句上,找不出問題,只好修改android.bat檔案了。對,直接指定java.exe的路徑:

set java_exe=
call lib\find_java.bat

改成:

set java_exe=C:\Java\jdk1.7.0_25\bin\java.exe

然後再執行android.bat,這個問題得到解決,但是又出現了新的問題:


按照資訊中的提示,在命令列輸入:

C:\Java\jdk1.7.0_25\bin\java.exe -jar lib\archquery.jar


返回的是”x86_64“,同樣的方法,在android.bat檔案中找到:

for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a

改成:

set swt_path=lib\x86_64

再次執行android.bat,見證奇蹟的時刻:


到這裡,sdk manager閃退的問題就解決了,我並沒有從根本上解決這個問題,為什麼,會出現”find_java.exe“和”-jar lib\archquery.jar“呼叫失敗的問題還是沒有搞清楚,以後有時間在研究。

2.無法更新sdk

在搞定閃退的問題後,緊接著發現還是無法更新:
這個問題就比較好解決了,一般是被牆掉了,無法訪問。解決方法網上流傳的主要有兩種:

1.修改hosts檔案

在”C:\Windows\System32\drivers\etc“目錄下找到hosts檔案,在最後一行追加: 74.125.237.1       dl-ssl.google.com  儲存即可。 但是我設定以後依然無法更新,於是採用第二種方案:

2.代理伺服器

這裡介紹一篇講goagent的文章,裡面有地址:http://www.goagent8.info/
然後開啟sdk manager.exe,在tools->options中設定: HTTP Proxy SERVER:127.0.0.1 HTTP Proxy Port:8580 記得勾選下面的Force。 然後就可以更新了。 到這裡所有的問題都解決了,感謝網上那些前輩,從他們那裡學到了很多。 PS:第一次發文章,不恰當的使用了“插入程式碼”工具,結果在顯示的時候出現了多餘的字元,實在抱歉,現已修正。 轉載自: http://blog.csdn.net/puma004/article/details/11392271