似乎有几种方法可以启动 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
直接运行任何一个文件)。