Android Emulator 启动但 Eclipse 无法识别
Posted
技术标签:
【中文标题】Android Emulator 启动但 Eclipse 无法识别【英文标题】:Android Emulator starts but Eclipse doesn't recognize it 【发布时间】:2011-07-28 12:09:44 【问题描述】:作为一般规则,一切正常,但有时 Eclipse 或我的 android 模拟器决定成为一个混蛋并拒绝工作。
我在 Eclipse 中打开 AVD 管理器。我选择我想要的 AVD,然后单击开始。模拟器启动并经历了漫长的引导过程。它终于完成了启动,然后由于某种原因,它立即重新启动并再次经历了漫长的启动过程。一旦它第二次启动,Eclipse 就会失去对它的跟踪。它不再是“设备”选项卡中的列表,我无法安装我的应用程序或在该模拟器上运行它。如果我杀死模拟器并尝试重新启动它,那么我会得到完全相同的行为。这令人难以置信的沮丧。
控制台中没有任何消息可以解释该行为。知道为什么会这样吗?
【问题讨论】:
您运行的是什么版本的 Android SDK、ADT 插件、API 级模拟器和 Eclipse? 【参考方案1】:当 adb 在模拟器之前启动时,这是一个已知问题。我不知道真正的原因,但一个快速的解决方法是在命令提示符下重新启动 adb(在模拟器运行的情况下)
> adb kill-server
> adb start-server
现在,
> adb devices
将返回模拟器,Eclipse 将能够安装应用程序。
【讨论】:
谢谢。您的回答使我搜索了帮助我找到详细解释问题的网站的术语。它包括一个方便的 shell 别名,使这个过程更容易:developmentality.wordpress.com/2010/09/13/…alias adb-restart
是一个不错的技巧,它可以为您节省几秒钟 :) 我一直不明白为什么没有开箱即用的 adb restart-server。请注意 adb devices 命令并不是真正需要的,而且这也发生在 Windows 上,而不仅仅是 linux。在 ubuntu 上,当您想使用 adb 访问您的实际手机时,这组命令很有用:adb kill-server; sudo adb start-server
以获得对 USB 连接的 root 访问权限。
您也可以在 Eclipse 中执行此操作。如果设备视图未打开,请打开它,然后从视图菜单(位于设备视图顶部)中选择“重置 ADB”。
@Aleadam:只是提到 adb start-server 将导致以普通用户而不是 root 用户身份启动服务器(除非已经是 root 用户),这将使 adb devices 无法识别设备。以 root 身份运行 adb start-server(即使用 sudo)将解决该问题。
这似乎不适用于我的系统(OS X 10.9.3,Eclipse Kepler 4.3.2)。如果我从命令行重新启动 adb 服务器,随后 Eclipse 将无法启动该应用程序。而如果我从 Eclipse 重置 adb 服务器,它就会崩溃。带有EXC_BAD_ACCESS
错误。【参考方案2】:
在 Eclipse 中,选择 Window->Show View->Devices。
如果您在新打开的窗口中看不到模拟器,请选择同一窗口中的向下箭头图标(靠近最小化和最大化按钮),然后从下拉菜单中选择“重置 ADB”。
另一种方法是打开 CMD.exe 并键入以下两个命令(根据需要更改 ADB 目录):
C:\Program Files\Android\android-sdk\platform-tools\adb.exe kill-server
C:\Program Files\Android\android-sdk\platform-tools\adb.exe start-server
【讨论】:
【参考方案3】:我也见过这个。如果您杀死并重新启动 adb 服务器,Eclipse 应该会看到它。
【讨论】:
【参考方案4】:> ./adb kill-server
> ./adb start-server
在 mac os x / eclipse 中尝试了这些命令 - 有效,但它也会杀死实际设备,您必须拔下/重新插入它们才能恢复。
【讨论】:
以上是关于Android Emulator 启动但 Eclipse 无法识别的主要内容,如果未能解决你的问题,请参考以下文章
Android Emulator 不会运行从 Eclipse 启动的应用程序
怎样高速启动Android模拟器(Android Emulator)
Android Studio启动时报错 Emulator: emulator: ERROR: OpenGLES emulation failed to initialize.