1

我在带有 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 中安装 sdk
  6. 使用 android-sdk.zip 或 android-sdk.exe 安装
  7. 在路径中添加android目录

但这次尝试中的任何一个都成功了。有人可以帮助我吗?

4

7 回答 7

5

似乎有几种方法可以启动 SDK 管理器:

  1. SDK Manager.exe在 Android SDK 的根目录中。
  2. SDK Manager.exesdk\tools\libAndroid SDK 中。
  3. Window -> Android SDK ManagerEclipse 中的菜单
  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\x86的文件夹或lib\x86_64文件夹加载 jar 文件。在某些时候,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 管理器(但仍不能通过SDK Manager.exe直接运行任何一个文件)。

于 2013-03-13T15:55:25.973 回答
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 管理器应该可以立即打开,您可以继续更新到最新版本的 Android SDK。

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

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

于 2012-12-22T06:44:24.303 回答
0

这就是我最终修复它的方法 open tools/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

它会像魅力一样起作用

于 2015-02-16T21:28:50.027 回答
0

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

希望这可以帮助。

于 2013-02-21T15:58:07.313 回答
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 即可。

于 2015-01-10T19:36:23.423 回答
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\Java\jdk1.7.0_80\bin; ...
    2. 打开一个新的命令窗口并在文件夹中运行find_java.bat<sdk>\tools\lib\后,我​​注意到java_exe 环境变量设置为C:\Windows\System32\java.exe,这不是我所期望的。
    3. 我删除(重命名)C:\Windows\System32中的java.exe
    4. 我再次运行find_java.bat,现在java_exe 环境变量已java_exe=<jdk>\java.exe按预期设置。
    5. 然后<sdk>我可以成功运行SDK Manager.exe
于 2015-08-15T07:01:58.627 回答
-1

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

于 2014-11-09T13:26:19.523 回答