安卓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个回答

7
在 tools 文件夹中找到 android.bat 文件对我有用。很有趣,这么难以让它运行。根据我的经验,通常 .exe 文件都能正常运行。不确定为什么在这种情况下不能...奇怪而烦人!

6

和其他答案完全不同的是我的做法。

我运行了tools/android.bat,然后得到了以下结果:

java.lang.NullPointerException
        at java.io.File.<init>(File.java:251)
        at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1623)
        at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1584)
        at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:357)
        at com.android.sdklib.internal.avd.AvdManager.getInstance(AvdManager.java:380)
        at com.android.sdklib.internal.repository.updater.UpdaterData.initSdk(UpdaterData.java:259)
        at com.android.sdklib.internal.repository.updater.UpdaterData.<init>(UpdaterData.java:127)
        at com.android.sdkuilib.internal.repository.SwtUpdaterData.<init>(SwtUpdaterData.java:61)
        at com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.<init>(SdkUpdaterWindowImpl2.java:104)
        at com.android.sdkuilib.repository.SdkUpdaterWindow.<init>(SdkUpdaterWindow.java:88)
        at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:408)
        at com.android.sdkmanager.Main.doAction(Main.java:391)
        at com.android.sdkmanager.Main.run(Main.java:151)
        at com.android.sdkmanager.Main.main(Main.java:117)

基本上看起来我的AVD配置文件已经损坏了,所以我清空了我的虚拟设备,一切都重新正常工作了!(对于Windows用户来说,文件位于C:\ Users \ YourUser \ .android \ avd 中)

应该是最顶上的答案。在启动一个虚拟机(VM)和AVD以及SDK的过程中发生了一次停电,之后这些工具就完全失效了。我只删除了最近使用的虚拟机(VM),然后问题就解决了!谢谢!- 对于那些无法承受删除整个虚拟机(VM)的人,请查找受影响的虚拟机上的.ini文件(如果不确定,请查看每一个文件)。如果它是“空的”(我的情况)或乱码,请用一个可用的.ini文件(例如来自其他虚拟机)替换它,并相应地更改文件内的文本。有一点运气的话,它就可以重新启动了。 - Fusseldieb

4

我尝试了这里提供的几乎所有解决方案,但都没有奏效。最后,我从下面的链接中下载了工具(tools_r25.2.3-windows.zip),并将其中的tools子文件夹替换到sdk文件夹中。它开始正常工作了。

https://developer.android.com/studio/index.html#downloads

虽然这是一个旧帖子,但我想分享这个信息。


3
将SDK目录中的“tools”文件夹替换为已下载和提取的“tools_r25.2.3-windows.zip”也解决了我的问题,但是指定链接已更新为最新的工具,这并没有解决问题。我直接从此处下载了ZIP:https://dl.google.com/android/repository/tools_r25.2.3-windows.zip?hl=id - Touhid

4
我遇到了相同的问题,最终成功解决了。我接着创建了一个逐步指南,包含通用的解决方案,以帮助所有开发人员尽快克服这个问题: http://www.dominantwire.com/2015/03/android-sdk-not-opening.html 简单来说,所有步骤如下:
1.如果您有jdk v1.8,请将其删除并重新安装jdk v1.7.x.x
2.在环境变量中设置路径到jdk和jre bin文件夹。
3.删除(首先备份)位于C:> Users> [user-name]> .android的.android文件夹。
4.设置JAVA_HOME变量,将JAVA_HOME作为变量名称,将jdk的bin文件夹路径作为变量值。
5.转到[sdk-directory]> tools。查找并右键单击android.bat文件,选择“编辑”以在记事本中打开它,并进行以下修改。
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

修改过的

set java_exe=C:\Program Files\Java\jdk1.7.0_75\bin\java.exe
rem call lib\find_java.bat
rem if not defined java_exe goto :EOF
注意:按照之前的说明,复制并粘贴您自己的java.exe路径目录。

翻译后

注意:按照之前的说明,将您自己的java.exe路径目录复制并粘贴。
for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

修改

rem for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86_64

注意:如果您的 Android SDK 是 64 位的,则请设置 set swt_path=lib\x86_64,否则如果是 32 位的,请将其保留为 set swt_path=lib\x86

  1. 完成了!从 android.bat 文件或从 Eclipse 启动 Android SDK。它应该能够正常打开!

我的android.bat可以打开SDK管理器,但sdk manager.exe不行。它显示错误android.bat没有找到。你能帮我吗? - Ankita

3
我最近在使用Android Studio的SDK Manager安装Android模拟器后遇到了这个问题,这也升级了我的Android SDK工具为26.0.1(因为这是Android Studio的SDK Manager的先决条件)。在我的情况下,我只需将Android SDK的"tools"文件夹替换为旧版Android SDK中的"tools"文件夹即可。这样可以降级Android SDK工具,但现在我可以使用"SDK Manager.exe"打开SDK Manager。

1
嗨,我认为我的问题是在升级到26之后开始的。你如何获取旧版的Android SDK工具? - user77177928
选项1。如果您有捆绑有Android SDK的Android Studio安装程序(最好是较旧版本的Android Studio),则可以选择安装Android Studio和Android SDK - 然后将新安装的SDK的tools文件夹替换已经存在的SDK的tools文件夹。 - Muntasir
1
选项2。您可以访问这里这里下载旧版Android SDK工具。(您也可以在这里找到一些旧的SDK工具,但这些工具太老了) - Muntasir
谢谢,这是 Android 团队的一个严重的 bug。26 版本有很多缺失的文件!降级到之前的 SDK 工具可以解决问题。 - user77177928

2

同时确保在Windows的PATH中JDK出现在JRE之前。Oracle总是将自己的JRE塞到路径中,排在其他任何东西之前(我在安装了Android SDK后安装了Oracle Lite)。


2
我已经解决了这个问题。如果您无法从资源管理器中打开“SDK Manager.exe”,或者在使用SDK Manager时遇到任何问题,请执行以下操作:
首先,请检查环境变量中是否已经设置了Java路径(在CMD中运行Java命令,或以管理员身份运行Where Java命令)。如果Java命令被识别,那么可能不是Java的问题。
这可能是由于损坏的SDK工具引起的。要解决此问题,请首先将 (Android\Sdk\tools) 文件夹重命名为 tools.old。现在下载https://dl.google.com/android/repository/tools_r25.2.3-windows.zip?hl=id。之后,将下载的zip文件提取到 Android\Sdk\,新的tools文件夹将与SDK的所有内容一起被提取。现在打开 SDK Manager.exe。如果它打开了,您的问题就解决了。请注意,SDK Manager.exe 是一个启动器文件,可以启动 Android\Sdk\tools\bin\sdkmanager.bat。如果您对答案满意,请点赞以便最多的用户可以解决问题。如需进一步帮助,请访问此页面https://answers.unity.com/questions/1320150/unable-to-list-target-platform.html

2

我也遇到了同样的问题,尝试了所有解决方案都无效。后来我进入了C:\Users\User_name文件夹并删除了“.android”文件夹,然后SDK管理器就能正常打开,并自动创建了其他“.android”文件夹。


2

我一直在尝试让SDK管理器运行,查看了很多类似问题的帖子。

另一个值得考虑的解决方案是将Android SDK移动到名称中不含空格的目录中。

例如,在我的情况下,它位于:

e:\Program Files (x86)\Android\android-sdk\

并且会失败。 当移动到:

c:\android_sdk_sucks\

它起作用了。


在这种情况下,当文件夹中有空格时,您可以使用引号,例如:"e:\Program Files (x86)\Android\android-sdk"。 - Deepak Goel

1

所有这些答案都没有帮到我,但我找到了正确的步骤(Windows 7 64位):

1)打开您的sdk文件夹中的android.bat进行编辑;

2)粘贴以下两个字符串:

set java_exe=c:\Program Files\Java\jdk1.8.0_25\bin\java.exe
rem call lib\find_java.bat

不要使用这个:

set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

其中c:\Program Files\Java\jdk1.8.0_25是您的jdk文件夹。 3)享受吧。SDK管理器将从Android Studio IDE启动。


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