装了三四天SDK
打开android.bat输出的信息有
unable to access jarfile lib\archquery.jar
无效路径
系统找不到指定的路径 x 10+个
找不到com.android.sdkmanager.Main之类的。
下了好多个都这样,然后上网找各种解决方法,改了android.bat不知道多少次,SDK MANAGER一点就闪退。然后复制粘贴到学校机房去同样设置好变量然后轻松打开SDKMANAGER.EXE。
总结: SDK 安装看电脑和运气,运气好什么都不用改直接能用,运气不好改半天批处理文件还是一大堆错误。
改了半天,都学会了批处理文件的一些入门语言了。
首先出现错误,我修改过的只有find_java.bat和android.bat,其它的都没有修改。
首先除去rem开头的所有行,剩下整洁的android.bat
@echo off
setlocal
set prog=%~f0
set work_dir=%cd%
cd /d %~dp0
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF
set jar_path=lib\sdkmanager.jar;lib\swtmenubar.jar
set swt_path="C:\adt-bundle-windows-x86-20140702\sdk\tools\lib\x86"
:MkTempCopy
set tmp_dir="C:\adt-bundle-windows-x86-20140702\sdk\temp\temp-android-tool"
xcopy %tmp_dir% "C:\adt-bundle-windows-x86-20140702\sdk\tools\lib" /I /E /C /G /R /Y /Q > nul
copy /B /D /Y lib\common.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-codec* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-compress* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-logging* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\dvlib.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\guava* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpclient* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpcore* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpmime* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\layoutlib-api.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\org-eclipse-* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\sdk* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\swtmenubar.jar %tmp_dir%\lib\ > nul
set tools_dir=%cd%
cd /d %tmp_dir%
:EndTempCopy
if defined ANDROID_SWT set swt_path=%ANDROID_SWT%
if exist "%swt_path%" goto SetPath
echo ERROR: SWT folder '%swt_path%' does not exist.
echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
goto :EOF
:SetPath
REM set REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
call "%java_exe% %REMOTE_DEBUG%" "-Dcom.android.sdkmanager.toolsdir=%tools_dir%" "-Dcom.android.sdkmanager.workdir=%work_dir%" -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %*
至于find_java.bat 当时我应该设置的是 set java_exe="C:\Java\jdk1.7.0_15\bin" 我想其实program file这种带空格的文件名也是能被调用的。当时网上写这种带空格的会有问题,所以把它重装到C目录下了。
这个估计导致的问题是unable to access jarfile lib\archquery.jar
android.bat我修改的地方有:
set swt_path="C:\adt-bundle-windows-x86-20140702\sdk\tools\lib\x86"
这个由于我是32位的XP系统所以调用x86的,里面应该还有个x86_64的应该是64位系统
有关于swt.jar的错误信息似乎也有
xcopy %tmp_dir% "C:\adt-bundle-windows-x86-20140702\sdk\tools\lib" /I /E /C /G /R /Y /Q > nul
这个是把temp_dir所设的路径下的文件放到"C:\adt-bundle-windows-x86-20140702\sdk\tools\lib"
下,这个找不到路径会显示 无效路径
以下代码找不到路径出现一堆 系统找不到指定的路径
copy /B /D /Y lib\common.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-codec* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-compress* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-logging* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\dvlib.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\guava* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpclient* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpcore* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpmime* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\layoutlib-api.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\org-eclipse-* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\sdk* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\swtmenubar.jar %tmp_dir%\lib\ > nul
解决方法:
前面设了tmp_dir的路径
set tmp_dir="C:\adt-bundle-windows-x86-20140702\sdk\temp\temp-android-tool"
手动在sdk下创建一个temp文件夹,然后在temp文件夹里面创建一个temp-android-tool文件夹,然后再在temp-android-tool文件夹里面创建一个lib文件夹,然后更新包会下载到这个文件夹里。
然后由于死马当活马医,所以在环境变量里面建立了一些变量,汇总如下:
ANDROID_SDK_HOME D:\
ANDROID_SWT "C:\adt-bundle-windows-x86-20140702\sdk\tools\lib\x86"
JAVA_HOME "C:\Java\jdk1.7.0_15"
Path C:\adt-bundle-windows-x86-20140702\sdk\tools;C:\adt-bundle-windows-x86-20140702\sdk;C:\Java\jdk1.7.0_15\bin;XXX.....注意后面的别删掉了。
目前android.bat打开可以弹出Android SDK Manager,但是双击SDK Manager还是闪退,估计是找不到android.bat,由于eclipse已经能正常运行Android程序了所以就没理它了。