【问题标题】:SDK Manager.exe doesn't workSDK Manager.exe 不起作用
【发布时间】:2011-09-08 05:31:03
【问题描述】:

当我单击 Program Files 上的 SDK Manager 或在 cmd 中运行它时,什么也没发生。我做到了:

  1. 安装了最新的 JDK
  2. 已安装最新的 Android SDK
  3. 设置环境 JAVA_HOME 并将 %JAVA_HOME%\bin 放入路径变量**

实际上是一个黑色的cmd窗口出现并消失一毫秒。

如何解决?

编辑:

我每天都在 Google 上搜索,但找不到解决方案。即使我为 ANDROID_SWT 设置路径它也无法运行。我怀疑Android SDK的安装包有bug。

我已经筋疲力尽了,这是我最后一次尝试:

  1. 卸载 JDK、Android SDK,移除所有 ANDROID 或 JAVA 环境变量
  2. 重新安装 JDK 和 Android SDK

但没有任何改变。

编辑:

其实这是我第二次遇到这个问题。只有在为 Ant 和 Maven 添加了更多环境变量后,我才遇到了这个问题。这是摘要:

安装 Windows XP SP3 --> 安装 JDK --> 安装 Android SDK --> 打开 SDK Manager 就可以了! --> 在 "path" 变量中附加一些 Ant 和 Maven 的 "bin" 路径 --> 打开 SDK Manager 并且它没有打开 --> 我通过删除所有环境变量来回滚 --> SDK Manager 仍然没有打开!这很奇怪! --> 重装JDK和Android SDK就奇怪了,还是打不开! :(

【问题讨论】:

    标签: java android environment-variables


    【解决方案1】:

    第 1 步:打开命令提示符。

    第 2 步:使用 cd 命令移动到安装 Android SDK 的位置。

    第 3 步:运行 tools\android

    如果这不起作用,您应该将信息转储到命令提示符以帮助您诊断设置问题。

    【讨论】:

    • 它报告:“无法访问 jarfile lib\archquery.jar [INFO] 启动 Android SDK 和 AVD Manager 路径无效错误:SWT 文件夹 '' 不存在。请将 ANDROID_SWT 设置为指向该文件夹包含您平台的 swt.jar。"
    • 嘿...我遇到了同样的问题..这个解决方案对我有用..运行Android命令后,它成功打开了SDK Manager并且工作正常。谢谢。
    • 我也是。。非常感谢您的提示。。仍然想知道为什么以管理员身份运行时它没有打开
    • 为我工作,但我确实需要以“管理员”身份运行命令提示符,否则您会收到“权限被拒绝”,然后是“无需安装”
    【解决方案2】:

    我收到错误“C:\Program 未被识别为内部或外部命令” 其次是“无法复制文件”的负载 后面是一些关于 Android_SWT 无法找到的内容。

    我在我的系统(Windows 8、64 位、JDK 7)上解决问题的方法是:

    1. 创建 JAVA_HOME 环境变量并将其指向 C:\Program Files\Java\jdk1.7.0_10\bin
    2. 在您喜欢的文本编辑器中打开ANDROID SDK DIRECTORY\tools\android.bat
    3. 找到设置java_exe= call lib\find_java.bat的行(分为2行)
    4. 将行替换为 set java_exe="%JAVA_HOME%\java.exe"
    5. 保存并运行tools\android.bat

    问题是路径中的空间没有得到正确处理。通过将路径用引号括起来,空间就得到了正确的满足。

    【讨论】:

    • 工作就像一个魅力!谢谢! :)
    • 对我不起作用 - 相同的消息 '""c:\Program' 未被识别为内部或外部命令、可运行程序或批处理文件。
    • @tmporaries 如果这仍然是一个问题,请用双引号将完整路径括起来
    【解决方案3】:

    我遇到了同样的问题。

    当我运行 \tools\android.bat 时,我得到了异常: 线程中的异常main

     java.lang.NoClassDefFoundError: com/android/sdkmanager/Main
    

    我的解决方法:

    1. 编辑\tools\android.bat
    2. 找到"%jar_path%;%swt_path%\swt.jar"
    3. 修改为"%tools_dir%\%jar_path%;%tools_dir%\%swt_path%\swt.jar"
    4. 保存并再次运行SDK Manager.exe

    【讨论】:

    • 这样做会在从命令行运行时发生一些事情。它开始下载一堆 xml 文件和其他文件。当它运行 :MkTempCopy 部分时,它将tools_dir 设置为当前目录。此部分似乎存在错误。
    • 我的问题已通过删除 adt 包路径中的 ambersand 得到解决。
    【解决方案4】:

    经过大量搜索和尝试不同的方法,我最终找到了问题的解决方案:SDK经理找不到我的个人资料目录。设置环境变量ANDROID_SDK_HOME 后(我将我的设置为新创建的文件夹C:\Android),SDK manager 启动没有问题。

    【讨论】:

    • 你能澄清一下这个答案吗? Android_SDK_Home 甚至在哪里被引用?在哪些文件中?我在 C:\Android 文件夹中放了什么?
    • @Lars - 我不知道 Android 使用了 ANDROID_SDK_HOME。你在哪里锁定ANDROID_SDK_HOME?我知道它确实使用ANDROID_HOMEANDROID_SDK_ROOTANDROID_NDK_ROOT,最后两个都应该设置,因为工具在内部使用它们。这是ANDROID_SDK_ROOTANDROID_NDK_ROOT 的参考:Recommended NDK Directory?。名为 Digit 的家伙在 NDK 团队工作。
    【解决方案5】:

    我有 Wondows 7 64 位 (MacBook Pro),在安装 Android SDK 期间安装了 Java JDK x86 和 x64,JAVA_HOME 指向 x32,稍后安装后 JAVA_HOME 指向 x64。

    我的问题是 Android SDK 管理器没有启动,cmd 窗口只是闪烁一秒钟,仅此而已。像许多其他人一样环顾四周并尝试了许多没有果汁的建议!

    我的解决方案是在 JAVA_HOME 路径中添加 bin:

    C:\Program Files\Java\jdk1.7.0_09\bin

    而不是我输入的开头:

    C:\Program Files\Java\jdk1.7.0_09

    希望这对其他人有所帮助....祝你好运!

    【讨论】:

      【解决方案6】:

      我的问题是在 Windows 7 上出现以下错误:

      C:\dev\Android\android-sdk-windows\tools>android
      [INFO] Starting Android SDK and AVD Manager
      No command line parameters provided, launching UI.
      See 'android --help' for operations from the command line.
      Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3550 or
      swt-win32 in swt.library.path, java.library.path or the jar file
              at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
              at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
              at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
              at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
              at com.android.sdkmanager.Main.showMainWindow(Main.java:292)
              at com.android.sdkmanager.Main.doAction(Main.java:276)
              at com.android.sdkmanager.Main.run(Main.java:99)
          at com.android.sdkmanager.Main.main(Main.java:88)
      

      解决方案是禁用 McAfee 8.8。显然,最近的一些更新现在阻止了我的 Android 环境。

      【讨论】:

      • 这只是一种解决方法。永久禁用防病毒软件来解决安装问题是不好的做法。 AV 是在安装期间禁用还是永久关闭?
      【解决方案7】:

      我解决上一个问题的方法是右键单击 android.bat 文件,然后选择使用 notepad++ 编辑。然后我深入到程序中包含这段代码的部分:

      cd /d %~dp0

      这也是一些其他的代码行,但我删除了它们。删除这些其他行后,我只是写了(在 cd /d %~dp0 下):

      cd 程序文件

      cd java

      cd jdk1.7.0_03

      光盘盒

      我不知道你的 java.exe 文件位于此处,但我的文件至少位于此处。

      【讨论】:

        【解决方案8】:

        我遇到了这个问题:我会得到错误

        C:\projects\Android\android-sdk-windows-1.5_r1\tools\lib>ddms
        02:03:07 E/ddms: shutting down due to uncaught exception
        02:03:07 E/ddms: no swt-win32-3550 or swt-win32 in swt.library.path, java.library.path or the jar file
        java.lang.UnsatisfiedLinkError: no swt-win32-3550 or swt-win32 in swt.library.path, java.library.path or the j
        ar file
                at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
                at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
                at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
                at org.eclipse.swt.graphics.FontData.<init>(Unknown Source)
                at com.android.ddms.PrefsDialog.setDefaults(PrefsDialog.java:221)
                at com.android.ddms.PrefsDialog.init(PrefsDialog.java:150)
                at com.android.ddms.Main.main(Main.java:74)
        

        我通过将 swt 文件从 eclipse 复制到 tools 目录中解决了这个问题。如果您在安装了 Eclipse 的目录中搜索,则有一个 SWT dll,名称类似于 swt-win32-&lt;4-digits&gt;.dll(我的名称为 swt-win32-3740.dll):我将其复制到工具目录中,之后一切正常。

        【讨论】:

        【解决方案9】:

        我解决了在sdk/tools 中打开android.bat 并设置java_exe 属性的问题,该属性为空。

        set java_exe="C:\Program Files\Java\jre6\bin\java"
        

        【讨论】:

          【解决方案10】:

          类似于sixty9我在创建JAVA_HOME环境变量并添加路径变量后重命名了java.exe、javaw.exe、javaws.exe(我在故障排除时从不删除文件)。

          我在 D:\ 驱动器上安装了 Java SDK(而不是默认)。

          1. 创建一个 JAVA_HOME 变量:变量名称: %JAVA_HOME% 值: D:\Program Files\Java.

          2. Path 变量中添加了以下内容:

            %JAVA_HOME%\jre7\bin;%JAVA_HOME%\jdk1.7.0_03\bin;
            
          3. 重命名为java.exejavaw.exejavaws.exe

          4. 重启系统,AndroidSDK安装器找到我的JDK并安装成功。

          【讨论】:

            【解决方案11】:

            我添加新的环境变量“ANDROID_SDK_HOME”并设置它,就像我的 android SDK 文件夹 (c:/Android) 的路径一样,它可以工作了!

            【讨论】:

              【解决方案12】:

              如果 tools\android 对您有效,而 .exe 无效,则可能是 x64 java。

              当我使用 JRE(在 Windows 卸载控制面板小程序中显示为单独的选项)和 android sdk 完全卸载 JDK 并使用 x86 版本重新安装时,它开始工作。

              您可能会问,为什么值得花时间?好吧,这种不一致显然意味着使用 x64 java 的测试量为零,因此您将来可能会遇到许多其他故障。

              【讨论】:

                【解决方案13】:

                终于可以运行这个糟糕的SDK了。

                在64位windows系统上安装32位Java时,将ANDROID_SWT设置为e:\android-sdk\tools\lib\x86

                不是 ..\x86_64

                尊敬的 Android SDK 团队,

                我真诚地希望对这些问题给予认真的关注。 SDK 应该很容易设置。这就是您将客户流失到其他平台的方式,因为这种事情是一键式的考验。

                我打算购买另一台安卓设备来测试我的游戏,但在过去 2 天试图穿越你无能的迷宫之后,我想我会坚持将 iOS 作为我的主要开发目标。

                【讨论】:

                • 我现在非常理解你的心情。我花了 10 多个小时试图让这个问题发挥作用......令人惊讶的是,这个问题有上百万种不同的解决方案,每个人的解决方案都不同,但我仍然找不到解决方案。
                【解决方案14】:

                我解决了这个问题,这是在 C:\Program Files 中的 Windows 7 64 位上手动安装 ADT (4.2/api 17) 包后发生的。

                我必须采取的步骤:

                1. JAVA_HOME环境变量设置为(64位)JDK的安装目录,在我的例子中为C:\Program Files\Java\jdk1.7.0_11
                2. 至少以管理员身份运行 SDK Manager 一次。 SDK Manager 允许您更改 Program Files 中的文件,因此您应该授予它适当的访问权限。

                【讨论】:

                  【解决方案15】:

                  没有一个解决方案对我有用

                  只要打开sdk/tools/

                  编辑android.bat

                  替换set java_exe="C:\Program Files\Java\jdk1.7.0_13\bin\java.exe" //你的java路径

                  如果tools/lib 不在sdk/ 基本文件夹中,则从任何tools/lib 复制sdk manageravd

                  【讨论】:

                    【解决方案16】:

                    在尝试了 2 个灵魂毁灭之夜后,我终于成功了!如果我遇到一个 Android SDK 开发者,我会用他自己的键盘将他砍死

                    无论如何,让它在 Windows 7 64 位上运行的技巧...

                    我怀疑这对我来说是多个问题,因为没有一个建议有效,所以我将列出我为最终让它发挥作用所做的所有事情

                    1) 安装 32 位 版本的 Java JDK(是的,即使您运行的是 64 位 Windows)

                    2) 将 SDK 和 JDK 安装到没有空格的路径(我使用 C:\Android 和 C:\Java32)

                    3) 在 Windows 环境变量界面(系统属性 > 高级设置 > 环境变量),有两个地方可以输入变量,“用户变量”和“系统变量”。我把它们都放在了两个中,并在两个中都包含了“bin”位,例如

                    JAVA_HOME = C:\Java32\jdk1.8.0_20\bin

                    Path = C:\Java32\jdk1.8.0_20\bin;其他路径应该在 jdk 之后...

                    4) 编辑文件 tools\android.bat 并查找以下内容:

                    设置 java_exe=

                    调用 lib\find_java.bat

                    将其更改为:

                    设置 java_exe="C:\Java32\jdk1.8.0_20\bin\java.exe"

                    rem 调用 lib\find_java.bat

                    您也可以在文件顶部将“@echo off”改为“@echo on”以进行调试

                    祝你好运!

                    【讨论】:

                      【解决方案17】:

                      我遇到了同样的问题,在尝试了各种方法(例如更改路径变量)后,我心血来潮地去了 java.com 并下载了 java,安装了,然后瞧瞧 sdk 管理器在那之后工作了。

                      【讨论】:

                        【解决方案18】:

                        遇到同样的问题,我在几个论坛上浏览的所有东西都试过了,直到我找到了线索,然后终于解决了这个问题。

                        基本上我安装了 SDK 并且工作正常,然后我的 Windows Vista 崩溃了,重新启动时我再次运行 SDK,但它只打开了一个立即关闭的 CMD 窗口。

                        所以这里列出了我做过的无用的事情:

                        • 转到 CMD“d:/java/android/tool”并执行“android.bat”,没有工作并显示指针异常错误。
                        • 重新安装了整个 JDK + SDK
                        • 将系统路径更改为新文件夹
                        • 我在 Regedit 上跟踪并删除了所有 android 事件

                        此时我正在认真考虑开始学习objetive-c并不是一个坏主意,最后我这样做了:

                        • 从“c:/users/youruser/”中删除“.android”文件夹
                        • 删除“c:/users/youruser/AppData/Local/Temp”中的所有文件
                        • 重新安装 SDK

                        成功了!!我不确定是否有必要卸载 SDK(因为我不得不再次下载所有软件包和平台)并清除临时文件夹。

                        希望这会有所帮助。

                        【讨论】:

                        • 我发誓我按照你说的做了。删除 .android 文件夹、Temp 中的文件、所有 android 环境变量;使用 CCleaner 清洁一切;重新启动 Windows;重新安装 SDK。还是不行。
                        【解决方案19】:

                        我通过在 Program Files 中重新安装它来解决此问题,它最初尝试将其安装在 c:/Users/.../AppData/Android/... 中。

                        我的问题是由于以管理员身份运行的用户权限问题似乎无法解决(可能是因为他们调用批处理文件?)。

                        【讨论】:

                          【解决方案20】:

                          我遇到了同样的问题,运行X64 Java (1.7.0_03-b05)。即使我的路径中同时列出了 C:\Program Files\Java\jre7\binC:\Program Files\Java\jdk1.7.0_03\bin,它也无法启动 - 只是闪现了一个命令提示符。

                          tools\lib\find_java.bat 文件报告它试图运行 C:\Windows\system32\java.exe 但失败了。嗯?我检查并在我的C:\Windows\system32 中发现了java.exejavaw.exejavaws.exe 的过时副本。那些是怎么到那里的,我没有放在那里!

                          我从C:\Windows\system32 删除了这三个文件,问题得到了解决。

                          考虑一下,通过确保C:\Program Files\Java\jre7\binC:\Program Files\Java\jdk1.7.0_03\bin 位于我的 PATH 变量的开头而不是添加到结尾,问题可能已经得到解决。

                          【讨论】:

                            【解决方案21】:

                            在安装 adt-bundle-windows-x86_64-20130717.zip 后,我在 Windows 7 64 位上遇到了 UnsatisfiedLinkError:

                             Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3550 or swt-win32 in swt.library.path, java.library.path or the jar file
                            

                            根本原因是 McAfee 具有阻止从临时目录加载 DLL 的功能。这是一个问题,因为 android.bat 将一堆 JAR 和 DLL 文件复制到一个临时目录并从那里运行程序,以便轻松就地升级应用程序。

                            但是,可以禁用此功能。您可以完全禁用“访问保护”,也可以只禁用阻止从临时文件夹加载 DLL 的功能。

                            【讨论】:

                              【解决方案22】:

                              我遇到了同样的问题!

                              我已经安装了 64 位的 ADT 包,所以我下载了 Java 64 位。我弄乱了路径和东西,但最终修复它的是安装 Java 32 位。

                              简单的解决方法是安装这两个版本。您可以手动下载它们here

                              祝你好运!

                              【讨论】:

                                【解决方案23】:

                                当我点击 Program Files 上的 SDK Manager 或在 cmd 中运行它时,什么都没有发生

                                您的问题之一是 Windows 中的长文件名。许多 Android 工具无法处理它们。几年前我提交了一份关于它们的错误报告,但我现在找不到它。我似乎还记得 INSTALL 或 README 中有关它的一些内容。

                                所以您应该将工具安装在没有空格的位置。使用 C:\Android\C:\Android-SDK\ 之类的东西。

                                @Steve 和@MeatPopsicle 已经在路径中提到了空格,但怎么强调都不为过。


                                实际上是一个黑色的 cmd 窗口出现并消失一毫秒。
                                ... 甚至我为 ANDROID_SWT 设置路径

                                出于好奇,ANDROID_SWT 是从哪里来的?

                                我知道Android确实使用ANDROID_HOMEANDROID_SDK_ROOTANDROID_NDK_ROOT,最后两个都应该设置,因为工具在内部使用它们。这是ANDROID_SDK_ROOTANDROID_NDK_ROOT 的参考:Recommended NDK Directory?

                                所以你应该设置三个环境变量(确保安装目录不包含空格后):

                                • ANDROID_HOME
                                • ANDROID_SDK_ROOT
                                • ANDROID_NDK_ROOT

                                ANDROID_HOME设置为隐藏目录.android所在的目录。

                                ANDROID_SDK_ROOT设置为SDK安装目录,如C:\Android-SDK\

                                ANDROID_NDK_ROOT 设置为安装 NDK 的目录,如C:\Android-NDK\。如果没有安装,请不要设置。


                                一旦你设置了ANDROID_SDK_ROOT,你就可以把%ANDROID_SDK_ROOT%\tools%ANDROID_SDK_ROOT%\platform-tools放在PATH上。然后,您可以进入命令行并发出类似这样的命令(它确实有效):

                                adb list
                                

                                【讨论】:

                                  【解决方案24】:

                                  我所做的是:

                                  在顶部用户部分设置一个新的环境变量。

                                  变量名称:JAVA_HOME VARIABLE VALUE:将其设置为最新 JDK 的安装目录。

                                  对我来说,C:\Program Files\Java\jdk1.7.0_13。以管理员身份运行 SDK Manager 至少一次。我使用 Windows 7。经过大量研究后,这种方法对我有用。

                                  我不明白的是,在命令提示符中使用“where java”时,它仍然引用C:\Windows\System32\java.exe。我的 SDK 管理器现在在我需要时打开,所以我解决了我的问题。

                                  【讨论】:

                                    【解决方案25】:

                                    find_java.exe 似乎不喜欢 openjdk “java -version” 输出。我像这样编辑了 find_java.bat:

                                    for /f %%a in ('%~dps0\find_java.exe -s') do set java_exe=%%a
                                    set java_exe="C:\Program Files (x86)\AdoptOpenJDK\jdk-8.0.242.08-hotspot\bin\java.exe"
                                    
                                    rem ...
                                    
                                    for /f %%a in ('%~dps0\find_java.exe -s -w') do set javaw_exe=%%a
                                    set javaw_exe="C:\Program Files (x86)\AdoptOpenJDK\jdk-8.0.242.08-hotspot\bin\javaw.exe"
                                    

                                    【讨论】:

                                      猜你喜欢
                                      • 1970-01-01
                                      • 2023-03-28
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2018-05-02
                                      • 2018-03-15
                                      • 2012-03-12
                                      相关资源
                                      最近更新 更多