安卓SDK管理器无法打开

226

我在Windows上安装了Android SDK,安装链接为:http://developer.android.com/sdk/index.html。但遇到了路径变量问题。通过将环境变量中的“PATH”更改为包含JDK中java.exe文件所在位置的路径来解决该问题。

但现在,当我打开Android SDK管理器时,一个类似于cmd的屏幕只是短暂地闪现了半秒钟,然后就消失了。我不知道发生了什么事,也不知道如何让它工作起来。


@user624869:你使用的是哪个版本的Windows?另外,你提到的“路径变量问题”是什么? - Squonk
53
请在命令提示符中使用位于tools文件夹中的android.bat文件启动SDK。 - Alpine
请参见:Also See - Alpine
2
应该有一篇详细的解释文章,涵盖所有这些Java路径、SDK路径、SDK/AVD管理器不显示、管理员权限、android.bat等问题,这些问题都是由相关路径的动态绑定引起的。 - Fredrick Gauss
29个回答

268

确保在windows\system32目录之前在您的路径声明中加入java\bin目录。因为SDK Manager使用java时会找到系统32文件夹中的java。

您可以在CMD窗口中运行'where java'命令进行检查。修改路径变量后,请不要忘记重新启动CMD以进行检查。


11
能具体说明一下吗?我不知道我的java\bin在哪里,是C:\Program Files\Java\jdk1.7.0_11\bin吗?"before the windows\system32 directory" 是什么意思?运行CMD中的"where java"有什么作用? - Hải Phong
40
好的,我明白了。在我的情况下,它意味着进入计算机->高级系统设置->环境变量->PATH->编辑:确保它们按照以下顺序排列:C:\Program Files\Java\jdk1.7.0_11\bin;%SystemRoot%\system32;.... - Hải Phong
9
我应该使用JDK bin还是JRE bin? - Peterdk
5
如果有任何关注的话,它们都更倾向于使用JDK。其他的则不太在意。 - AlbeyAmakiir
4
我仍然无法通过更改环境路径打开SDK管理器。 - Yog Guru
显示剩余6条评论

185

好的,我遇到了同样的问题,这些答案都没有帮到我(我使用的是Windows 8)。我尝试运行tools/android.bat,注意到我在那里得到了一些错误。我进一步调查发现寻找Java路径的代码似乎有问题。

以下是解决方法:

  1. 使用您最喜欢的文本编辑器打开tools/android.bat
  2. 搜索此段代码:

  3. set java_exe=
    call lib\find_java.bat
    if not defined java_exe goto :EOF
    
  4. 将其替换为:

  5. set java_exe=D:\Program Files\Java\jdk1.7.0_07\bin\java.exe 
    

    路径是指向您的Java exe的路径。

  6. 运行android.bat

(在我的情况下,我必须在第3步中指定无引号的java_exe路径才能使它工作。)


7
我也在使用Windows 8,和原帖的作者一样遇到了同样的问题。就像teuneboon一样,除了这个方法,其他解决方案都没有奏效。谢谢你,teuneboon! - Raddfood
3
谢谢你提供的解决方案。我发现只有当你将安卓SDK放在包含空格的文件夹/路径中时才会出现这种情况。 - PC.
@PC。这是说如果我重命名Android SDK的父文件夹,那么这个问题就解决了吗? - Deepak
@Deepak 是的,你需要注意的是完整路径中不应该有任何空格。 - PC.
1
@PC。抱歉,但这对我没有帮助,我找到了这个链接,它对我有用https://dev59.com/LG025IYBdhLWcg3wEhnr#7567354。 - Deepak
显示剩余4条评论

29

SDK管理器打不开有很多原因。我建议不要盲目尝试每一个方法,而是在命令窗口中运行android.bat,这样你就可以阅读错误信息并应用正确的修复方法。


我在cmd中运行了android.bat,结果出现“xcopy不是内部或外部命令”,于是我在环境变量->路径中定义了System32文件夹的路径(该文件夹包含xcopy.exe),现在它可以正常工作了。谢谢 - Ehsan

22

在最新版本的Android SDK中,运行"SDK Manager.exe"和/或"AVD Manager.exe"将不再打开。即使在之前可以在Android SDK设置中找到的“启动独立SDK管理器”的链接也已经消失。

现在建议在Android Studio内手动管理SDK和AVD。但是对于那些没有安装Android Studio或者不喜欢打开Android Studio来执行SDK管理的用户,仍然可以使用命令行工具"tools/bin/sdkmanager.bat""tools/bin/avdmanager.bat"来管理SDK。

这些信息可以在运行"tools/android.bat"时获得。我认为对于当前拥有Android SDK工具v25.3.1及以上版本的用户都适用。


有没有其他方法可以修复这个问题,而不仅仅是通过命令行工具来解决它? - DaveTheMinion
虽然这不是问题的答案,但我必须点赞以提高其可见性,因为最新的SDK下载中没有SDK Manager.exe,原因不明。可能是为了将所有内容打包在Android Studio中。实际上,@bmdelacruz的答案基本上就是Google在这里所说的:https://developer.android.com/studio/intro/update.html#sdk-manager - Hugo M. Zuleta
我的Eclipse Luna之前一直运行良好,我添加了一些后来的SDK并成功地提交了我的应用程序。现在我想做一些更改,但它无法打开。我尝试使用sdkmanager,但出现了很多错误,仍然无法加载。 - becker
运行sdkmanager.bat时出现太多错误,难以处理! - Ghasem

19

我也遇到了同样的问题。 问题已解决! 我安装了正确的Java环境,全部都是64位的,因为我的系统是x64的,但是什么都没发生。所以我去了C:\Users\[我的用户名]并删除了目录.android,这个目录第一次运行SDK时被创建,显然配置有误。

然后它就能工作了。你可以试试这个方法。删除该文件夹或将其移动到桌面上,然后运行SDK。


17

谷歌从版本26开始删除了SDK的图形用户界面。如果您正在使用版本26,请尝试降级到版本25。您仍然可以从Android Studio打开SDK。

来源:GUI for Android SDK manager gone?


14

看起来有几种启动SDK管理器的方法:

  1. 在Android SDK根目录中的SDK Manager.exe
  2. 在Android SDK的sdk\tools\lib中的SDK Manager.exe
  3. Eclipse菜单中的Window -> Android SDK Manager
  4. 在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文件夹加载jar文件,要么从lib\x86_64文件夹加载。 在某些时候,BAT文件错误、32位JDK和64位Android SDK之间会出现混淆。

因此,在我的情况下解决方法是:

  1. 卸载所有Java版本
  2. 安装JDK
    • 你可以使用32位Android SDK并安装32位JDK
    • 或者使用64位Android SDK并安装64位JDK
    • 但是JDK的位数应该与Android SDK的位数匹配。 显然,无论是32位还是64位都适用于64位计算机,只要JDK的位数与Android SDK的位数匹配。
  3. 编辑"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 Manager成功运行它(但仍然无法直接运行SDK Manager.exe文件)。


请不要在多个问题上发布相同的答案。如果这些问题是相同的,请留下评论或将它们标记为重复。如果它们不同,请根据所提出的问题量身定制您的答案。 - George Stocker
我的android.bat可以启动SDK管理器,但是sdk manager.exe不能。它显示错误android.bat未找到。你能帮我吗? - Ankita
在运行android.bat之前,您可以设置ANDROID_SWT=lib\x86或lib\x86_64来指定swt_path。 - Peter Quiring

13

最简单的方法是以管理员身份运行程序。

右键单击SDK Manager -> 以管理员身份运行

这样应该就解决了问题 :)


2
Indeed解决了这个问题。这是最好的解决方案。如果你想默认设置此行为,请在文件属性的兼容性选项卡中勾选“以管理员身份运行此程序”标志。 - Corbella

9

我曾经遇到过同样的问题,尝试设置路径变量等方法都没有解决。SDK 管理器需要的不是 JDK,而是实际的 Java SE 终端用户软件。请前往 http://www.java.com/en/download/ie_manual.jsp?locale=en 下载安装。在我安装完成后,它就像魔法般地工作了。


8

尝试将Java路径(指向JDK)添加到系统环境变量中。

右键单击“计算机”>“属性”>“高级系统设置”>“环境变量”

然后在系统变量下添加一个新变量。

Variable   Value
JAVA_PATH  C:\Program Files\Java\jdk1.7.0

然后编辑Path变量,将其前缀改为%JAVA_PATH%\bin;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接