描述
我正在使用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-5554
和adb 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都保留为空白,并且为主机和来宾端口选择不同的端口。