Android SDK管理器无法打开


227

所以我为Windows安装了android sdk:

http://developer.android.com/sdk/index.html (安装链接)

并遇到了路径变量问题。因此,我通过更改环境变量中的“ PATH”来解决该问题,以包括来自JDK的java.exe文件所在的位置。

但是现在当我打开android sdk管理器时,类似cmd的屏幕只是短暂地闪烁了半秒钟,然后消失了。我不知道这是怎么回事,以及如何使它正常工作。


@ user624869:您运行的是哪个版本的Windows?您提到的“路径变量问题”是什么?
Squonk 2011年

53
尝试通过android.bat在tools文件夹中使用从命令提示符启动SDK 。
高山


2
应该有关于所有这些Java路径,SDK路径,SDK / AVD管理器未显示,管理员权限,android.bat ..的详细说明,这些问题是由于相关路径的动态绑定而发生的。
Fredrick Gauss

Answers:


265

确保java\bin目录位于windows\system32目录之前的path语句中。SDK Manager使用Java,并且在system32文件夹中找到了一个。

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


11
你可以说得更详细点吗 ?我不知道我的java \ bin在哪里,那是C:\ Program Files \ Java \ jdk1.7.0_11 \ bin吗?“ windows \ system32目录之前”是什么意思?在CMD中运行“ where java”有什么意义?
海防

37
好,我知道了。在我的情况下,这意味着转到计算机->高级系统设置->环境变量->路径->编辑:确保它们的顺序如下:C:\ Program Files \ Java \ jdk1.7.0_11 \ bin;%SystemRoot% \ SYSTEM32; ....
海防

9
我应该使用JDK bin还是JRE bin?
Peterdk

5
@Peterdk JDK。任何关心的人都会喜欢JDK。其他任何事情都不会大惊小怪。
AlbeyAmakiir 2013年

3
我仍然无法通过更改环境路径来打开sdk管理器。
Yog Guru 2015年

181

好了,我遇到了同样的问题,这些答案都对我不起作用(我正在运行Windows 8)。我尝试运行tools/android.bat,发现那里出现了一些错误。我进行了进一步调查,发现在查找Java路径的代码中似乎存在错误。

解决方法如下:

  1. tools/android.bat在您喜欢的文本编辑器中打开
  2. 搜索这段代码:

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

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

    路径是Java exe的路径。

  4. android.bat

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


7
我也在运行Windows 8,并且与原始海报存在相同的问题。就像teuneboon一样,除此以外,其他解决方案都对我无济于事。谢谢teuneboon!
Raddfood 2013年

3
@teuneboon感谢您的解决方案。而且我发现只有当您将android SDK放在任何包含空格的文件夹/路径中时,才会发生这种情况。
PC。

@PC。这意味着如果我重命名android SDK父文件夹,那么此问题解决了吗?
迪帕克

@Deepak是的,您需要注意的是,完整路径中不应有任何空格。
PC。

1
@PC。抱歉,它对我没有帮助,我找到了此链接,这对我有用stackoverflow.com/a/7567354/1250370
迪帕克

26

关于SDK Manager无法打开的原因有很多。我建议不要在命令窗口中运行android.bat,而不是盲目地尝试其中的每一个,以便您可以阅读错误消息并应用正确的修复程序。


21

在最新版本的Android SDK中,无法再运行“ SDK Manager.exe”和/或“ AVD Manager.exe”。甚至以前可以在Android SDK设置中找到的Android Studio中的“启动独立SDK管理器”链接现在也消失了。

现在建议在Android Studio中执行手动的SDK和AVD管理。但是,对于那些没有Android Studio的用户或不喜欢仅为了执行SDK管理而打开Android Studio的用户,您仍然可以使用命令行工具“ tools / bin / sdkmanager.bat”“工具/bin/avdmanager.bat”

运行“ tools / android.bat”时,此信息可用。我认为这对于当前拥有Android SDK v25.3.1及更高版本的用户来说是正确的。


有什么方法可以解决问题,而不仅仅是通过命令行工具来解决?
DaveTheMinion '17

尽管这不是问题的答案,但由于某些原因,由于最新的SDK下载中不存在SDK Manager.exe,因此我不得不对其进行投票以提高知名度。可能是将所有内容打包在Android Studio中。实际上,@ bmdelacruz的答案基本上就是Google在这里所说的话:developer.android.com/studio/intro/update.html#sdk-manager
Hugo M. Zuleta

我的月食Luna运行良好,我添加了一些以后的SDK,并且可以正常工作并提交了我的应用程序,现在我想进行一些更改,使其不再打开,我尝试了sdkmanager,虽然弹出了很多错误,但仍然无法加载
贝克尔

运行sdkmanager.bat时有太多错误,太处理了!
Alex Jolig

19

这里同样的问题。固定!我安装了正确的Java东西,全部为64位,因为我的系统是x64,什么也没发生。因此,我去了C:\Users\[my name]并删除了.android第一次运行SDK时创建的目录,显然目录配置有误。

然后它起作用了。你可以试试看。删除该文件夹或将其移至桌面并运行SDK。



15

似乎有几种方法可以启动SDK Manager:

  1. SDK Manager.exe 在Android SDK的根目录中。
  2. SDK Manager.exesdk\tools\libAndroid SDK中。
  3. Window -> Android SDK Manager Eclipse中的菜单
  4. android.batsdk\toolsAndroid 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\x86lib\x86_64文件夹中加载jar文件。在某些时候,BAT文件错误,32位JDK和64位Android SDK之间使事情变得混乱。

SO,在我的情况的解决方法是:

  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直接运行两个文件来成功运行)。


请不要对多个问题发布相同的答案。如果问题相同,请发表评论或将其标记为重复。如果它们不相同,那么请针对所提出的问题定制答案。
乔治·斯托克

我的android.bat启动sdk管理器,但未启动sdk manager.exe。找不到dia.plays错误android.bat。可以帮我吗?
Ankita

您可以在运行android.bat之前设置ANDROID_SWT = lib \ x86或lib \ x86_64来指定swt_path。
彼得·奎林

13

最简单的方法是以administartor身份运行程序。

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

那应该解决问题:)


2
确实解决了问题。这是最好的解决方案。如果要设置默认情况下的行为,请在文件属性的“兼容性”选项卡中选中“以管理员身份执行该程序”标志。
Corbella


8

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

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

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

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

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


6

在tools文件夹中找到android.bat文件对我有用。有趣的是,让它运行起来是如此繁琐。以我的经验,通常.exe文件会按预期运行。我不确定在这种情况下为什么不这样做……奇怪而烦人!


5

我有一些与其他答案完全不同的东西。

我跑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配置已损坏,所以我去清理了我的虚拟设备,一切又重新开始了!(C:\Users\YourUser\.android\avd适用于Windows用户的文件)


4

我遇到了同样的问题,终于设法解决了。然后,我创建了包含通用修复程序的分步指南,以帮助所有开发人员尽快解决此问题:http : //www.dominantwire.com/2015/03/android-sdk-not-opening.html

总之,所有步骤:

1.如果您有jdk v1.8。删除并重新安装jdk v1.7.xx

2.在环境变量中设置jdk和jre bin文件夹的路径

3.删除(首先备份)位于C:> Users> [user-name]> .android中的.android文件夹

4.设置JAVA_HOME变量,将JAVA_HOME作为变量名,并将jdk的bin文件夹路径作为变量值。

5.转到[sdk目录]>工具。找到并右键单击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路径目录。

原版的

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,否则,如果它是32bit,则将其保留为set swt_path = lib \ x86

  1. 做完了!从android.bat文件或Eclipse启动android sdk。它应该打开就好了!

我的android.bat启动了sdk管理器,但没有启动sdk manager.exe。找不到dia.plays错误android.bat。可以帮我吗?
安基塔2015年

3

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

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

尽管它是旧线程,但将其作为信息共享。


2
toolsSDK目录中的文件夹替换为下载并提取的文件tools_r25.2.3-windows.zip也解决了我的问题,但是定向链接已使用最新工具进行了更新,但并不能解决问题。我下载的ZIP直接从这里:dl.google.com/android/repository/...
Touhid

3

在我使用android studio的sdk管理器安装android仿真器后,我最近遇到了这个问题-这也将我的android sdk工具升级到26.0.1(因为这是先决条件-根据android studio的sdk管理器)。

就我而言,我只是用较旧的android sdk 替换了toolsandroid sdk的tools文件夹。这降级了android sdk工具,但现在我可以使用打开sdk管理器SDK Manager.exe


1
嗨,我认为我的问题在升级到26后也开始了。如何获得较旧的android sdk工具?
user77177928

选项1.如果您将android studio安装程序(最好是旧版本的android studio)与android sdk捆绑在一起,则可以选择同时安装android studio和android sdk-然后用新安装的sdk的tools文件夹替换现有的sdk的tools文件夹。
Muntasir

1
选项2。您可以访问此处此处下载较早的android sdk工具。(您也可以在这里找到一些旧的sdk工具,但是这些工具太旧了)
Muntasir

谢谢,这是来自Android团队的严重错误。26版本缺少许多文件!降级到以前的SDK工具即可。
user77177928

2

还请确保Windows上的PATH中的JDK之前没有JRE。Oracle始终将自己的JRE填充到路径中(在安装android sdk之后安装了Oracle Lite)。


2

同样的问题,我尝试了所有解决方案,但没有任何效果。然后我进入C:\Users\User_name并删除了“ .android”文件夹,然后SDK Manager可以正常打开,并自动创建了其他“ .android”文件夹。


2

我已经解决了这个问题。如果您无法从资源管理器中打开“ SDK Manager.exe”,或者SDK SDK Manager遇到任何问题。

首先检查环境变量中给出的Java路径。(在CMD上运行Java命令,或以管理员身份在CMD上运行Where Java)。如果识别出Java命令,则Java可能没有问题

这可能是由于SDK工具损坏。要解决此问题,请先将tools文件夹重命名(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

我一直试图让SDK管理器运行一段时间,以跟踪各种具有类似问题的线程。

要考虑的另一种解决方案是将android SDK移动到其名称中没有空格的目录。

例如,就我而言,它位于:

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

并会失败。移至:

c:\android_sdk_sucks\

有效。


在这种情况下,当空格位于这样的文件夹中时,可以使用逗号分隔。“ e:\ Program Files(x86)\ Android \ android-sdk \”
Deepak Goel 2012年

1

之前,我尝试了所有最受欢迎的解决方案,但没有人为我工作,直到我意识到Android SDK文件夹必须没有空格,因此我将其从“ C:\ Android SDK”更改为“ C:\ Android_SDK”。就如此容易。


我认为这是道路上的空间。我用的是C:\ Programs而不是C:\ Program Files,它起作用了。这是四年后的v3.01版!我觉得自己又回到了90年代。
ssimm '18年

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 Manager将从Android Studio IDE启动。


1

我安装了Mac版Android Studio。我无法通过IDE访问SDK管理器。原来,我只需要设置我的JAVA_HOME环境变量。设置好此设置后,便可以启动SDK管理器。


0

我遇到了同样的问题。运行android.bat时,我找到了解决方案(如果Java安装在“正常” Windows目录中,即“程序文件”),则需要在“ c:/ program files /”等周围加上引号。否则,它将找不到在“ C:/程序”上的Java。(我不喜欢空格)


0

我的问题是我可以通过双击android.bat来运行SDK管理器,但是当我双击实际的SDK管理器应用程序时则不能。我通过设置新的环境变量解决了这个问题:

ANDROID_HOME = C:\Development\adt-bundle-windows-x86_64-20130911\sdk\

重新启动我的电脑,现在我可以双击该应用程序并运行SDK Manager。希望有帮助:)


我也遇到了同样的问题,但无法通过您提供的解决方案来解决
Ankita,2015年

0

我看到了通过硬编码java.exe位置和x86/或x86_64体系结构字符串来提供解决方法的答案sdk\tools\android.bat。这些是快速的解决方案,但是并没有解决我真正好奇的基本问题。

我遇到的实际问题是,批处理脚本无法找到另一个脚本/ jar文件,因此无法继续执行。我可以说脚本写得不好。

在中进行以下更改后sdk\tools\android.bat,一切都变得像个魅力。

具体来说,我添加了%~dp0\

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

...

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

现在,尝试启动脚本,SDK Manager应该会出现。

ps我的OS,Java 8和Android SDK的安装是全新的,我没有进行任何额外的配置。

ps您可能仍需要配置PATH环境变量,以便脚本可以找到合适的脚本java.exe


0

我进行了所有测试,但唯一可行的方法是在与旧版本相同的路径中重新安装sdk-manager



0

我遇到了类似的问题,其中SDK管理器将刷新命令窗口并消失。

这对我有用:我的处理器和OS均为64位。我已经安装了64位JDK版本。重新安装JDK或修改路径不会解决问题。我的理论是SDK Manager可能需要32位版本的JDK。不知道为什么这很重要,但是我最终安装了32位版本的JDK和magic。并且SDK Manager成功启动。


0

操作系统:Windows 7- 64 bit,Android SDK:64 bit

  1. 引入一个名为“ JAVA_HOME”的新“系统变量”,值:C:\ Program Files \ Java \ jdk1.7.0_51

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

检查清单:

  • 确保系统变量“ Path”中的java路径类似于:C:\ Program Files \ Java \ jdk1.7.0_51 \ bin
  • 文件夹名称中没有空格,将C:\ Android SDK替换为C:\ Android_SDK
  • 您可以在命令行中使用“ where java”命令找到您的java
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.