一年多没写新文章了,我现在正在用着 32 位的 Windows 7 系统,虽然还有着诸多的不习惯,可另外一块硬盘上装着的 Windows XP 还是用的越来越少了。
昨天看到 Android Studio 1.0 正式版发布了,那个激动啊,赶紧下载下来学习,顺便把之前为了 Cordova 编译安装的 Android SDK 也更新一下,然后就杯具了……
打开 SDK Manager 时一闪而过就退出了,完全卸载重新安装 installer_r24-windows.exe 还是没用,
尝试在命令行运行 android.bat,在命令行输出了如下内容:
D:\android-sdk\tools>android.bat
'-v' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
无效路径
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
系统找不到指定的路径。
ERROR: SWT folder '' does not exist.
Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
网上搜索了下相关问题,基本上都是修改下环境变量什么的,尝试了一下都没用。
自己找找看问题出在哪里,编辑 android.bat 注释掉第一行的 @echo off 后再次运行,发现在
call lib\find_java.bat
这个调用后出现错误,再编辑 find_java.bat 同样注释第一行的关闭回显代码,可以看到如下输出
for /F "delims=" %a in ('"D:\ANDROI~1\tools\lib\\find_java32 .exe" -s') do set java_exe=%a
仔细一看,find_java32 和 .exe 之间有一个空格,在 find_java.bat 中找到对应的代码为:
for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s') do set java_exe=%%a
也就是说 %arch_ext% 这个变量被设置成了 “32 “,再看看这个变量是哪来的:
find /i "x86" > NUL && set arch_ext=32 || set arch_ext=64
看到没,”32″ 和 “||” 之间有一个空格!
删除这个空格,重新打开 SDK Manager,可以打开了!
如果要保持代码留白一致的话可以用加括号的方法,即改成如下:
find /i "x86" > NUL && (set arch_ext=32) || (set arch_ext=64)
这就是一个空格引发的杯具,多年的软件开发经验告诉我,最经常犯的错误甚至是致命的错误往往都是极小的问题导致的,比如标点错误、拼写错误或者这里的多了一个空格……
近期评论