【问题标题】:How to attach back the Android emulator to ADB?如何将 Android 模拟器附加到 ADB?
【发布时间】:2011-01-15 05:17:00
【问题描述】:

在我通过点击 Eclipse 中的 Debug 启动模拟器后,一段时间后它与 ADB 断开连接,但模拟器保持打开状态。它是响应式的,我可以导航和启动应用程序。

如何将模拟器重新连接到 ADB,以便能够从 Eclipse 进行调试?

(当前的解决方法是终止模拟器,关闭 Eclipse 并重新启动它们,这需要 10 分钟,因为您知道模拟器需要时间来启动)

编辑 1
看看这张图片:

编辑 2

在我杀死并重新启动服务器之后。一个模拟器进程显示在 Eclipse 的设备选项卡中。但这无法扩展,而且我没有看到子流程。
我已经不能调试了,因为它说:调试已经在运行。 (如何停止调试?)

如果我设法开始调试另一个项目,它会挂在模拟器中告诉我:等待调试器附加。什么都没有发生。

【问题讨论】:

    标签: android eclipse android-emulator emulation adb


    【解决方案1】:

    正如您所说,问题不在于 Eclipse 与模拟器失去联系,而是 ADB - Android Debug Bridge - 与它失去联系。由于 Eclipse 在 ADB 损坏时使用 ADB 与模拟器通信,因此 Eclipse 无能为力。

    通过运行以下命令修复此stop the ADB server

    adb kill-server
    

    Eclipse 然后通常会尝试重启 ADB,或者你可以通过运行 ADB 命令自行重启,例如:

    adb devices
    

    如果你这样做,你会看到这样的输出:

    * daemon not running. starting it now *
    * daemon started successfully *
    List of devices attached
    emulator-5554   device
    

    您也可以通过鼠标执行此操作,使用 Eclipse 中 Devices 视图中的 Reset adb 选项。

    另外值得注意的是,Console 视图有两种模式,DDMSAndroid。您通常处于Console 模式,但它是DDMS 模式,它将显示 ADB 状态消息。通过单击带有监视器图标的按钮或使用它旁边的箭头来选择模式:

    如果一切都失败了,请尝试从操作系统中终止 adb 进程。在 Windows XP 上我使用:

    TASKKILL /F /IM adb.exe
    

    【讨论】:

    • 我无法通过鼠标执行此操作,使用 Eclipse 的设备视图中的重置 adb 选项,因为所有内容都显示为灰色。检查我上面的编辑。
    • @Pentium10 - 尝试从操作系统中杀死 adb 进程,因为这有时会有所帮助。接下来尝试重新启动 Eclipse,对我来说,这比重新启动 Emulator 更快。
    • 对我来说最近有了这个蜂窝更新,即使执行了所有这些 adb 重启步骤,模拟器似乎也没有出现。
    • 两个注意事项:对我来说 adb 在 adt-bundle-.../sdk/partner-tools 中,我必须同时执行 adb kill-server 和 adb start-server。 Eclipse 没有为我启动它。
    【解决方案2】:

    有时,kill-server 对我的机器 (WinXP) 没有帮助。例如,我在 DDMS-View 中看不到模拟器,或者我确实看到了它,但没有任何进程在上面运行。

    在这些情况下,我会关闭模拟器和 eclipse 并从进程列表中手动终止 adb.exe 进程。

    当我重新启动 eclipse 和模拟器时,一切又好了。

    现在我只需要一个键盘快捷键 :-)

    【讨论】:

      【解决方案3】:

      在 Mac 上,我只需要从活动管理器中终止 adb 并再次手动重新打开程序。一直打开eclipse,它工作得很好。

      【讨论】:

        【解决方案4】:

        我正在 Android 4.0(API 级别 14)模拟器上测试应用程序,一旦我运行该应用程序,模拟器就会启动,一旦加载,Eclipse DDMS 就会与模拟器断开连接。

        这是我正在使用的解决方法:打开终端,导航到平台工具(C:\android-sdk\platform-tools\ 或安装了 android-sdk 的任何位置),然后运行 ​​adb kill-server,然后运行,adb start-server。 DDMS 现在应该列出模拟器 - 从 Java 角度来看,右键单击应用程序 -> 运行方式 -> Android 应用程序。

        希望这会有所帮助。

        【讨论】:

          【解决方案5】:

          我方便的 bash 脚本

          #!/bin/bash
          ./path/to/adb kill-server
          ./path/to/adb start-server
          ./path/to/adb devices
          

          【讨论】:

            【解决方案6】:

            尝试使用 adb kill-server 和 adb start-server。即使这样,同样的问题也会发生,从 ddms 中杀死你正在运行的进程。请参阅此链接(http://www.jiahaoliuliu.com/2011/02/stopping-android-applications-already.html)。这解决了我的问题。也希望你。

            【讨论】:

              【解决方案7】:

              有一个更简单的方法。在 Eclipse 中,您可以从 DDMS 面板重置 adb。 这是一个关于这样做的简短视频"Reset ADB on DDMS"

              这里是您可以在哪里获得选项的快速屏幕截图。

              【讨论】:

              • 我做到了,但它没有将我的模拟器连接回 ADB。
              猜你喜欢
              • 1970-01-01
              • 2014-04-26
              • 1970-01-01
              • 1970-01-01
              • 2011-03-17
              • 2012-01-18
              • 1970-01-01
              • 1970-01-01
              • 2017-01-08
              相关资源
              最近更新 更多