安卓调试器不断断开连接。

15

在我的当前工作区切换后,我在Android调试方面遇到了问题,无论是在Eclipse还是IntelliJ中都是如此。以前,我曾经遇到过手机卡在“等待附加调试器”对话框上的问题。不知怎么回事,我修复了这个问题,至少现在调试器可以连接到我的应用程序。

现在我可以设置断点并使调试器停止在那个点。但大约5-10秒后,它就会自动断开连接,无论我做什么。我能读取一些内存变量值,但之后所有信息都会消失。我的同事可以使用Eclipse调试同一个应用程序,而我们没能找出我们的工作站之间的错误或差异(除了我使用IntelliJ外)。虽然我们的笔记本电脑可能拥有不同的镜像文件。

有任何想法吗?目前我只能使用Log语句进行调试,但相比实际调试来说,它们太慢了。我尝试使用不同的USB电缆,但效果不明显。我检查了调试器设置,但似乎没有异常。其他SO的问题和答案提到了应用程序静默崩溃,但由于它可以为我的同事成功调试,所以我排除了这种可能性。

5个回答

7
我一直在运行 IntelliJ IDEA build IC-133.193 时遇到同样的问题。我通过以下步骤解决了该问题:
  1. 退出 IntelliJ
  2. 从命令行使用 adb kill-server 杀死 adb 服务器
  3. 以超级用户身份从命令行启动 adb 服务器,命令为 sudo adb start-server
  4. 重新启动 IntelliJ
如果 IntelliJ 检测到 adb 未运行,则会启动 adb 服务器。关键似乎是在启动 IntelliJ 之前以超级用户身份启动 adb。
[更新] 这种方法并不总是有效。我找到的最佳解决方案是在设备上启动应用程序,然后通过“Run”菜单将调试器附加到 Android 进程。使用此方法,我没有遇到任何断开连接的情况。

谢谢您的建议,我会尝试一下。我的问题已经大大减少了,不确定是我下载了更新或其他改进了它。我的同事认为根本原因可能是线程问题导致调试器不同步,然后断开连接。 - telkins
事实证明,即使我以超级用户身份启动adb,我仍然会遇到断开连接的问题。到目前为止,我找到的最佳解决方案是在设备上启动应用程序,然后从“运行”菜单中附加调试器到Android进程。到目前为止,使用这种方法我还没有遇到任何断开连接的情况。我将编辑答案以反映这一点。 - neveu
我在Android Studio中遇到了这个问题。在连接到正在运行的进程时,我没有遇到过这个问题。但有时断点会在应用程序启动时被触发,因此这不是一个选项。 - Jeff Lockhart

4

我一直在与adb无法识别我的设备进行斗争。尝试了许多其他发布的解决方案后,我发现问题在于Chrome也尝试将其调试器连接到Web视图。如果使用chrome://inspect连接Chrome,则adb似乎会断开连接。退出Chrome解决了这个问题,然后我可以连接Android Studio,重启Chrome并重新连接。希望这能帮助其他人。


1
我没有看到Chrome使用chrome://inspect连接,但不知何故,退出Chrome解决了问题,谢谢! - auspicious99
是的,我也一直在解决这个问题:D 但最终找到了原因。非常感谢! - Orcun Sevsay

3

这个方法对我起了作用

  1. 打开计算机的电源选项
  2. 在所选方案上点击“更改计划设置”
  3. 在所选方案上点击“更改高级电源设置”
  4. 展开“USB设置”
  5. 展开“USB选择性暂停设置”并将其更改为禁用。

0

当我尝试使用USB 3.0端口时,出现了这个问题。使用USB 2.0则不会发生。


1
对我来说,在带有 USB 2.0 端口的 Windows 上也会发生这种情况。 - arberg

0

当电缆连接敏感时,我会遇到这种情况。


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