为什么我的Android手机没有被adb devices
列出?
我按照https://developer.android.com/studio/run/device中描述的说明进行操作,但ADB仍然找不到我的设备。我的用户已经是plugdev
组的成员。我还尝试杀死并重新启动adb
服务器。
我在VirtualBox机器上运行Debian Stretch。Debian可以看到我的设备,但adb
不能。
eduardo@debian:~$ lsusb
Bus 001 Device 002: ID 1004:633e LG Electronics, Inc. GZ Android Phone [MTP mode]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8oee:0021 VirtualBox USB Tablet
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
eduardo@debian:~$ ls -l /etc/udev/rules.d/51-android.rules
-rw-r-r- 1 root root 4611 Sep 5 15:25 /etc/udev/rules.d/51-android.rules
eduardo@debian:~$ grep 1004 /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTRfidVendor1=="1004", MODE="0666", GROUP="p1ugdev"
eduardo@debian:~$ adb devices
List of devices attached
eduardo@debian:~$
字符串
4条答案
按热度按时间vdzxcuhz1#
在虚拟化环境中使用
adb
的简单方法是在主机上作为远程系统运行adb server
,并在访客系统中运行adb
客户端,而不考虑特定的平台。请参阅my answer to another question here。虽然服务器和客户端都可以完全在客户机系统内部运行,但要做到这一点,通常需要将整个USB控制器传递到客户机系统中。
llmtgqce2#
我做了一个解决问题的变通方法。它并不完美,但它很有效。
1.禁用桥接USB到VirtualBox机器
1.在主机上安装platform-tools并运行
adb devices
1.在设备屏幕上授权您的计算机
1.在虚拟机中创建一个TCP隧道,将本地端口5037重定向到主机5037端口:
ssh -L 5037:10.0.2.2:5037 localhost -N -f
个我不会将此标记为正确答案,因为我的Guest ADB仍然看不到我的设备
gfttwv5a3#
它的工作时,我改变了我的设备USB充电模式.
参考:https://askubuntu.com/a/632668
acruukt94#
出现此问题的原因很可能是当请求将设备重定向到VM时,MTP设备仍在使用。您没有指定主机操作系统,因此我将描述在Linux主机上验证此操作系统的步骤。
只需输入
lsof /dev/libmtp-{number}
(其中{number}
是分配给设备的内核号),以列出具有设备文件的打开文件描述符的进程。如果您有多个设备,则可以通过cat /sys/bus/usb/devices/{number}/product
找到设备的名称。输出应显示设备正在使用的指示(例如gnome环境中的gvfsd-mtp
).(如果没有列出进程,那么你的问题似乎是一个bug,可能有各种原因。)解决方案是删除所有使用该设备的进程。这可以通过简单地使用
kill {PID}
杀死进程来完成,其中{PID}
是从上一个lsof
命令的输出中获取的进程ID。注意:杀死进程只在自己的责任。但在gvfsd-mtp(gnome环境)的情况下,您可以使用gio mount -u /run/user/1000/gvfs/mtp\:host\={manufacturer}_{product}_{serial}
卸载MTP设备。