描述

我正在使用VirtualBox运行Android-x86 7.1。我要从主持人到来宾。对于adb设备,我遇到了一个非常随机的行为。一旦虚拟机运行,就有机会出现一个名为adb connect的仿真器。有时列出,有时没有列出。使用emulator-5554连接到设备将产生以下结果:


如果列出了adb connect 127.0.0.1,则设备emulator-5554被标记为127.0.0.1:5555,并且无法使用。然后必须使用offline
如果未列出emulator-5554,则可以毫无问题地使用设备emulator-5554


127.0.0.1:5555显示仿真器来自虚拟机:adb devices -l

问题

即使device product:android_x86_64 model:VirtualBox device:x86_64 transport_id:1可以正常工作,并且我可以与虚拟机通信,但由于我想使事情自动化,所以我不能依靠它。 emulator-5554由我的VirtualBox网络配置给出。名称127.0.0.1似乎是随机的,可能会更改。因此,我需要使用emulator-5554,这在仿真器在线时是不可能的。

VirtualBox配置

网络设置


仅适配器1处于活动状态,适配器2-4未启用
adb connect 127.0.0.1
Attatched to: NAT


名称:Port forwarding,协议:ADB#1,主机IP:TCP,主机端口:127.0.0.1,来宾IP:5555,来宾端口:10.0.2.15
名称:5555,协议:ADB#2,主机IP:TCP,主机端口:127.0.0.1,来宾IP:5554,来宾端口:10.0.2.15



USB设定


5554未选中


目前的方法

当前方法由我进行的所有当前设置代表,这些设置仍会导致随机出现的Enable USB Controller

使用emulator-5554adb kill-server也没有任何效果。



我有什么办法可以阻止adb -s emulator-5554 emu kill启动并因此出现在我的emulator-5554中?

最佳答案

我可以通过使用以下端口转发规则来解决此问题。


仅适配器1处于活动状态,适配器2-4未启用
Attatched to: NAT
Port forwarding


名称:ADB#1,协议:TCP,主机IP:保留空白,主机端口:55551,访客IP:保留空白,访客端口:5555
名称:ADB#2,协议:TCP,主机IP:保留空白,主机端口:55541,访客IP:保留空白,访客端口:5554



因此,与我的第一种方法的不同之处在于,主机IP和来宾IP都保留为空白,并且为主机和来宾端口选择不同的端口。

10-01 08:27