Brian,您可能会考虑的一种解决方法是让您的VM主机也成为ADB主机.然后,您可以通过TCP / IP将VM客户端连接到它.以下是该设置的一般概念:

>在主机上安装Android SDK.您应该只需要包含adb的platform-tools包.

>不要让您的VM客户端取得Android设备的所有权,因此请禁用您拥有的任何VirtualBox USB过滤规则,然后分离并重新连接设备也不会受到影响.

>从VM客户端,运行adb kill-server.确定它是一个tskill adb.如果您有任何正在运行的Eclipse实例,那么您首先要关闭它们,因为它实际上会在后台启动adb.不要跳过这一步.

>从主机执行adb设备.如果一切顺利(并且它应该),您将看到列出您的设备.它看起来应该是这样的(注意端口号并抱歉):

* daemon not running. starting it now on port 5037 *

* daemon started successfully *

List of devices attached

015d2994ed200409 device

此时,您的主机应该有一个在端口5037上运行的ADB服务器.您可以通过运行telnet 10.0.2.2 5037从VM客户端进行检查,其中10.0.2.2是VirtualBox主机的默认IP,5037是默认的ADB端口如上所述.

>现在,您必须将端口从主机转发到VM客户端,或者将ADB直接连接到主机IP:端口.如果你像我一样,你会发现ADBHOST和ANDROID_ADB_SERVER_PORT变量记录不清,容易搞砸.出于这个原因,考虑从VM客户端通过ssh(可能通过Cygwin)进行简单的端口传输:

autossh -nNL5037:localhost:5037 -oExitOnForwardFailure=yes 10.0.2.2

>最后,从VM客户端运行adb设备.如果你看到“守护程序没有运行”,那就意味着你的端口正在搞砸了.否则你应该看到你的设备,并能够整天登录.值得注意的一点是,除了实际使用调试桥时,您的VM客户端上不会运行adb守护程序.

我已经使用类似的机制来调试连接到远程机器的网络上的设备并且它运行良好.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐