在SDK工具中启动Android模拟器,版本为12。

53

我将Android SDK工具从版本11升级到版本12后,模拟器无法启动。当我尝试运行emulator.exe时,会出现以下错误:

无效的命令行参数:Files\Android\android-sdk\tools/emulator-arm.exe。
提示:使用'@foo'启动名为“foo”的虚拟设备。
请使用-help获取更多信息。

emulator.exe的路径为C:\Program Files\Android\android-sdk\tools

如何修复?


我在将Android SDK从11更新到12后,使用Eclipse 3.7也遇到了同样的错误。 - user832507
太好了,我的r12更新刚刚失败了!听起来像是大G的业余时间。 - zombat
6
我们正在跟踪这个漏洞:http://code.google.com/p/android/issues/detail?id=18317 - Tor Norbye
11个回答

79

正如之前所建议的那样,似乎是由于Android SDK的默认安装路径中有空格导致的:C:\Program Files\Android\android-sdk\

有几种可能的解决方法:

  1. 将安装目录移到不包含空格的路径(如前所述)...
  2. 但更简单、可能稍微不那么麻烦的方法是在Eclipse中调整路径,使用8点3的目录名。由于我正在运行Win7,有两个Program Files目录,第二个是“Program Files (x86)”,这就是sdk安装的地方。因此,我的8点3路径是PROGRA~2。因此,我只需将Android首选项中的“SDK位置”值从C:\Program Files\Android\android-sdk\更改为C:\PROGRA~2\Android\android-sdk\,现在所有东西都可以正常工作了。

如果您不知道所需路径的8点3名称,只需启动命令提示符并执行“DIR /X”即可,短名称将显示在每个目录旁边。


1
这对我有用,应该标记为答案 :) 问题确实是“Program Files”中的空格。 - yuudachi
2
由于我正在从命令行调用emulator.exe,因此我还必须更改Path变量。为了修复从AVD Manager启动的问题,请从命令行调用“C:\ PROGRA〜2 \ Android \ android-sdk \ SDK Manager”,而不是使用快捷方式。 - Timothy003
1
确认这也是我的更新后的问题,移动了 SDK 并更改了路径,8.3 解决方案也行。 - Idistic

27

我也遇到了同样的问题,虽然这是我第一次尝试使用Android SDK。我认为问题出在SDK的位置上。请注意“参数”“Files\Android\android-sdk\tools/emulator-arm.exe”。我认为谷歌代码中存在一个错误,它没有将SDK所在目录用引号括起来,这意味着,如果目录名称中有任何空格,它将无法工作。有没有将其SDK安装在没有空格的目录中的人可以确认我的理论吗?

为了解决这个问题,你可以在命令行中调用“C:\Program Files\Android\android-sdk\tools\emulator @foo”,其中“foo”是你的模拟器的名称。


6
我可以确认这一点。我将SDK从C:\Program Files\Android\android-sdk移动到C:\android-sdk(感谢安装程序!),模拟器可以启动。思路不错! - Fammy
哈哈,Fammy来拯救;)好久不见。 - Codejoy
@Codejoy 你会很高兴知道我仍然可以复制和粘贴。不仅仅是代码,还有文件! - Fammy
你肯定不知道,这恰好发生在我尝试进行Android开发的第一个晚上... - womp
如果这能让你感觉好一点,womp,你不是一个人。 - Highsight

6

我刚刚遇到了这个问题,但是我找到了解决方法。

我的模拟器路径是C:\Program Files\Android\android-sdk\tools。当我在命令行中尝试使用emulator-arm @my_avd(其中my_avd是我的Android虚拟设备名称)时,它可以正常工作。


4

我在 Windows XP 上解决了这个问题。只需从“C:\Program Files\Android\android-sdk”剪切并粘贴内容目录到“C:\Android\android-sdk”。将系统变量“ANDROID_HOME”设置为“C:\Android\android-sdk”。在 Eclipse 中将路径设置为 Android SDK 的路径为“C:\Android\android-sdk”。就这样!一切都运行正常。


3

已在r13版本中修复。请更新您的SDK工具!


3
由于此问题的原因是Windows安装目录中的文件路径名中存在空格,因此另一个解决方法是使用文件短名称(即8.3别名文件名)来涉及此问题。
具体来说,如果Android SDK的根安装目录为 c:\Program Files\..,则使用c:\PROGRA~1\.. 或者如果 c:\Program Files(x86)\..,则使用c:\PROGRA~2\.. 然后,您可以通过运行以下命令行启动SDK Manager: start c:\PROGRA~2\Android\android-sdk\tools\android.bat

2

在更新 SDK 工具从版本 11 到 12 后,我也遇到了这个问题。我发现问题出在 android-sdk-windows 所处的上级目录名称中有一个空格,因此我将 'eclipse' 和 'android-sdk-windows' 目录从我的 'Program Files (x86)' 复制到 D 盘根目录。现在一切都解决了!


2

我想你是说你改变了应用程序的minSDK版本,现在模拟器无法运行...?这是因为你的模拟器版本不对...假设你正确地更改了应用程序的minSDK,你所需要做的就是创建一个与相同SDK版本的模拟器。打开Android SDK / AVD管理器(屏幕右上角图标旁边的打印令牌),并创建一个minSDK为12的模拟器。


2
将Android SDK文件夹移动到完整路径不含空格的位置即可解决问题。

1

作为PROGRA~2方法的替代方案(例如在Intellij IDEA中无法工作),您可以创建一个名为prg的符号链接到Program Files(从命令行运行mklink /?以了解如何执行此操作),然后将模拟器运行为C:\ prg \ Android \ android-sdk \ tools \ emulator.exe。还要在IDE中更改SDK /模拟器的路径。


1
在发布复制粘贴的样板/逐字回答多个问题时要小心,社区往往会将其标记为“垃圾邮件”。 - Kev

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