Android SDK Manager无法运行

时间:2012-10-02 08:10:53

标签: android sdk

我使用的是带有java jdk 7u7的Windows 7 Pro x64。

我尝试在我的计算机上安装Android SDK,但是当我启动 SDK Manager.exe 时,dos-windows正在打开并立即关闭。所以我尝试启动tools/android.bat。但这没用,它告诉我:

"'C:\PROGRA~2\Android\ANDROI~1\tools\lib\\find_java.exe -s' isn't a external or internal command ...

ERROR No suitable java such ..."

我为修复错误做了些什么:

  1. 安装Java 6u35
  2. 安装Java x32和x64
  3. 检查我的路径
  4. 以管理员身份启动
  5. 安装在C:\ Dev the sdk
  6. 使用android-sdk.zip或使用android-sdk.exe安装
  7. 在路径中添加android目录
  8. 但是这次尝试的任何人都是成功的。 有人可以帮帮我吗?

7 个答案:

答案 0 :(得分:5)

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

    Android SDK根目录中的
  1. SDK Manager.exe
  2. 在Android SDK的SDK Manager.exe
  3. sdk\tools\lib
  4. Eclipse中的
  5. Window -> Android SDK Manager菜单
  6. 在Android SDK的android.bat
  7. sdk\tools
  8. 就我而言,看起来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
        
    4. 执行此操作后,我可以通过运行android.bat或从Eclipse菜单运行SDK Manager(但仍然不能直接运行任何SDK Manager.exe文件)。

答案 1 :(得分:0)

本周我得到了这个答案,并确定了导致它的原因。

当Java更新时,它会更改存储可执行文件的路径。这意味着当SDK管理器查找javaw.exe时,它无法找到它并立即关闭。

因此,重新安装Android SDK无法解决问题。 也不会重新安装JAVA。

解决此问题的唯一方法是正确指向存储JAVA的位置。

Windows有一种方法可以做到这一点,称为环境变量。 有一个名为PATH的变量,它存储Windows将查找可执行文件的所有目录。

因此,您必须修改该PATH变量以包含JAVA的路径。 默认情况下,JDK 7具有以下路径:

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

要编辑环境变量,请执行以下操作。

From the Start Menu right click on Computer and select "Properties"
This will take you to the Control Panel System Menu
On the left column look for the option "Advanced System Settings"
This will open a System Properties window
One of the tabs is named Advanced
In that there is a button that says Environmental Variables
If you search your System Variables you will see one called "Path"
Edit that variable and add the path above to include the latest Java Path.

完成后,SDK Manager应该能够立即打开,您可以继续更新到Android SDK的最新版本。

更新完成后,请不要忘记确保您的IDE(即Eclipse)指向存储SDK的正确位置,以便它读取最新的Android SDK文件。要在Eclipse中访问此设置,请转到Window - >偏好 - >的Android

这将允许您手动设置存储SDK的路径。

答案 2 :(得分:0)

唯一帮助我的是将java重新安装到一个不包含任何空格的路径中,而不是C:/ Program Files到C:/ Java并将Path变量更改为新值。

希望这有帮助。

答案 3 :(得分:0)

我有同样的问题,很可能是由路径名中的空格引起的。众所周知,路径名和批处理文件中的空格不能很好地结合在一起。

您可以通过打开命令行提示符,将位置更改为%SDK%\ tools \ lib并运行find_java.bat来验证。您将收到类似

的批处理错误
'C:\PROGRA~2\Android\Android' is not recognized as an internal or external command, 
operable program or batch file.

只需将SDK安装到C:\ Android \ SDK中,将NDK安装到C:\ Android \ NDK中即可。

答案 4 :(得分:0)

这就是我最终解决它的方法 打开工具/ android.bat

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

将其替换为您的java路径

set java_exe="c:\PROGRA~1\Java\jdk1.7.0\bin\java.exe" 

注意: 不要使用C:\Program Files\Something因为空间而抛出错误 使用短名称符号C:\PROGRA~1\Something

它会像魅力一样工作

答案 5 :(得分:0)

同样的问题 SDK Manager.exe 只是在没有错误消息或Windows事件的情况下停止。

我用已经提供的答案混合修复了这个问题(我在Win 8.1上运行)。问题似乎是 find_java 所针对的java.exe与最近安装的JDK版本不一致。

对我来说:

  • <sdk> C:\ Users \ Simon \ AppData \ Local \ Android \ sdk
  • <jdk> C:\ PROGRA~1 \ Java \ jdk1.7.0_80 \ bin

    1. 我将JDK安装路径添加到PATH环境变量,例如...; C:\ PROGRA〜1 \爪哇\ jdk1.7.0_80 \ BIN; ...
    2. 打开一个新命令窗口并在<sdk>\tools\lib\文件夹中运行 find_java.bat 后,我注意到 java_exe env变量设置为 C:\ Windows \ System32 \ java.exe 这不是我的预期。
    3. 我在 C:\ Windows \ System32
    4. 中删除(已重命名) java.exe
    5. 我再次运行 find_java.bat ,现在 java_exe env变量按预期设置为java_exe=<jdk>\java.exe
    6. 然后在 <sdk> 中,我可以成功运行 SDK Manager.exe

答案 6 :(得分:-1)

将JAVA_HOME从现有指向JDK路径更改为JRE路径对我有用。