64位win7下Android SDK Manager闪退的解决方法

64位win7下Android环境搭建

       最近突然对android很感兴趣,于是搭建了android的开发环境。在搭建过程中遇到了各种各样的问题,整整折腾了两周的时间,所以把这些问题和解决方法记录下来,算是对这两周煎熬的一个总结和回馈。

1.下载和安装

1.下载和安装JDK

下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

我的电脑是64位win7系统,所以下载的版本是:

 Windows x64 90.66 MB    jdk-7u25-windows-x64.exe
安装和环境配置在之前的文章中已经详细叙述过了,这里就不再赘述了。

2.下载和安装SDK及Eclipse

安装和配置好JDK后,下载Android SDK:

下载地址:

http://developer.android.com/intl/zh-cn/sdk/index.html

点击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:第一次发文章,不恰当的使用了“插入代码”工具,结果在显示的时候出现了多余的字符,实在抱歉,现已修正。

你可能感兴趣的:(android,SDK,闪退问题,更新问题)