Android ADB-over-WiFi在USB电缆循环时仍会断开连接(?!?)

7
我正在开发一个基于USB的项目,所以我正在使用WiFi TCP/IP上的ADB。它运作得非常完美,而且可以通过无线连接进行调试是我多年来使用过的最酷的开发技巧之一。真的非常酷。
我正在处理与USB连接和断开相关的各种意图。我发现每当USB电缆的物理状态改变-无论是插入还是拔出- ADB无线连接都会丢失。我可以重新建立连接并通过DDMS恢复调试,但此时已经浪费了大量的CPU时间。这使得调试USB连接事件基本上是不可能的。
我无法理解为什么当ADB通过TCP/IP(甚至是通过WiFi)连接时,它仍会对USB事件采取行动。我是否错过了ADB配置细节?如何告诉ADB忽略USB,因为它根本不在USB上运行呢?
谢谢!

没有任何理智的原因可以解释为什么如果您更改USB配置,就必须杀死adb。所以我猜您可能无法更改它,因为这不是故意的。在USB处理代码中可能有一个硬编码的“kill adb”(因为通常这样做是正确的),或者甚至可能存在硬件限制,例如WiFi可能是内部USB设备,而对USB的任何更改都会导致WiFi内部发生某种事件,从而导致adb死亡。原因很多,但您可用的选项却不多。 - zapl
同意,这听起来有点问题。当你说你可以恢复调试时,是指你可以通过WiFi发出adb重新连接命令,还是必须使用ADB-over-USB重新启用ADB-over-wifi? - Chris Stratton
通过“恢复调试”,我的意思是:我可以1)adb connect 192.168.x.y,2)在Eclipse中切换到DDMS视图并突出显示设备上的进程,以及3)单击小的 “bug” 符号重新将调试器与该进程关联。所有这些都在WiFi上发生。换句话说,该进程一直在运行,我可以重新关联并继续调试它。我只是在连接或断开电缆时失去ADB连接,这使得设置与USB连接和断开相关的断点和调试代码变得相当困难!{grrrrr} - AndroidNewbie
1
我也注意到了同样的问题,这是我第一次接触Android,看到了这种不可靠的行为!也许这取决于Android版本。 - RichColours
1个回答

3

我曾经遇到过同样的问题,我认为我通过“撤销USB调试授权”解决了这个问题

然后我通过USB连接了我的设备并允许了我的电脑连接

接着在tcpip模式下重新启动adb并连接到我的设备

当我拔出USB连接线时,它仍然保持连接

希望这可以帮助你


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