YMMV,但除了编辑 android.bat,如上一个答案中所述,我仍然无法让 SDK 管理器在 Windows 8 64 位上运行,直到我首先:
- 卸载所有版本的 Java
- 重新启动*
- 仅安装了 X86 JDK(包括安装程序中的 Public JRE 选项)
我已经尝试了所有这些事情,而且之前还尝试过更多 *没有重新启动,这是我让 SDK 管理器运行的唯一方法。希望这些信息可以使您免于经历我所经历的一些彻底的挫败感和浪费的时间。只是让工具开箱即用是多么痛苦。糟糕的经历。
我会作为对上一个答案的评论进行回复,但显然我没有足够的代表来做到这一点: https ://meta.stackexchange.com/questions/25725/how-do-you-comment-on-a -具体答案
编辑:下面更完整的答案。(我不认为重新启动与它有任何关系。)
似乎有几种方法可以启动 SDK 管理器:
SDK Manager.exe
在 Android SDK 的根目录中。
SDK Manager.exe
在sdk\tools\lib
Android SDK 中。
Window -> Android SDK Manager
Eclipse 中的菜单
android.bat
在sdk\tools
Android SDK 中。
就我而言,它看起来像是android.bat
失败了:
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
至于那条线在做什么......如果我手动运行:"[path_to_java]java" -jar lib\archquery.jar
它成功返回:x86_64
但是当批处理文件运行相同的命令时,我不知道为什么但它失败并显示错误消息:
Unable to access jarfile lib\archquery.jar
所以变量swt_path
被设置为一个空字符串。一切都从那里崩溃。
批处理文件为变量设置正确的值java_exe
。其他人通常将此报告为一个问题,但这些解决方法与我的情况无关。
人们建议通过将 REM 添加到问题行的开头来注释掉问题行,并添加一行来手动设置swt_path
变量,这是一种有效的解决方法:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86
但是,就我而言,关键问题是它选择从此处lib\x86
的文件夹或lib\x86_64
文件夹加载 jar 文件。在某些时候,BAT 文件错误、32 位 JDK 和 64 位 Android SDK 之间的关系变得混乱。
所以,在我的情况下,解决方法是:
- 卸载所有版本的 Java
- 安装 JDK
- 您可以使用 32 位 Android SDK 并安装 32 位 JDK
- 或者使用 64 位 Android SDK 并安装 64 位 JDK
- 但是JDK的“位数”应该与Android SDK相匹配。看起来 32 位或 64 位都可以在 64 位计算机上运行,只要 JDK 位数与 Android SDK 位数匹配。
编辑“android.bat”
如果使用 32 位 Android SDK/JDK,请使用lib\x86
:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86
如果使用 64 位 Android SDK/JDK,请使用lib\x86_64
:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86_64
完成此操作后,我可以通过运行android.bat
或从 Eclipse 菜单成功运行 SDK 管理器(但仍不能通过SDK Manager.exe
直接运行任何一个文件)。