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-specific-answer
编辑:下面更完整的答案。 (我认为重启与此无关。)
似乎有几种方法可以启动 SDK 管理器:
-
SDK Manager.exe 在 Android SDK 的根目录中。
-
Android SDK 的
sdk\tools\lib 中的SDK Manager.exe。
-
Window -> Android SDK Manager Eclipse 中的菜单
-
Android SDK 的
sdk\tools 中的android.bat。
就我而言,看起来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 文件)。