64位win7下Android环境搭建
最近突然对android很感兴趣,于是搭建了android的开发环境。在搭建过程中遇到了各种各样的问题,整整折腾了两周的时间,所以把这些问题和解决方法记录下来,算是对这两周煎熬的一个总结和回馈。
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
我的电脑是64位win7系统,所以下载的版本是:
Windows x64 | 90.66 MB | jdk-7u25-windows-x64.exe |
安装和配置好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程序了。
前面的工作很简单,基本不会遇到什么问题,但是如果想要升级或者下载其他版本的话,就要运行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
按照信息中的提示,在命令行输入:
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“调用失败的问题还是没有搞清楚,以后有时间在研究。