一整行的平板电脑不再显示在ADB设备中(它们一周前还能正常工作)。其他Android设备可以工作(例如我的Nexus 5手机)。这是我第一次遇到这个问题。我已经阅读并尝试了大多数我在SO和其他网站上找到的解决方案,但都没有成功。以下是情况:
在这个问题出现之前,我记得做了以下更改:
编辑:当按照评论中建议的运行
- 它们在
lsusb
中显示为Bus 010 Device 004: ID 18d1:dddd Google Inc.
。 - 创建/编辑
/etc/udev/rules.d/51-android.rules
并添加SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
(以及几种其他属性组合)。 - 通过
sudo service udev restart
重新启动udev
。 - 通过adb kill-server; adb start-server`重启ADB服务器。
- 尝试了PC上的所有USB端口。
- 尝试了另一个USB电缆。
- 重新启动了PC和平板电脑。
/etc/udev/rules.d/51-android.rules
文件并重新启动udev
守护程序,adb
仍然会检测到我的Nexus 5手机。在这个问题出现之前,我记得做了以下更改:
- 开始使用Android Studio而不是Eclipse(虽然我使用的是相同的ADK和工具)
- 将Ubuntu升级到最新版本14.04(也许存在一些
udev
的变化/问题?)
编辑:当按照评论中建议的运行
lsusb -v
时,我可以看到以下描述: bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 1 Mass Storage
尽管Nexus 5显示为
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 0
iInterface 4 MTP
编辑:这些平板在其他电脑中通过ADB完美地工作(包括Windows和Linux)。所以问题肯定是出现在我的电脑上了。
编辑:根据评论中的建议,我尝试使用TCP模式的ADB,效果很好。运行dmesg
后,我发现系统正在尝试使用ndiswrapper
加载Windows驱动程序来识别ADB。
[277701.803751] usb 1-4: reset high-speed USB device number 48 using ehci-pci
[277701.952803] ndiswrapper (load_wrap_driver:103): couldn't load driver android_winusb; check system log for messages from 'loadndisdriver'
在其他正常通过USB使用ADB的Linux设备上不会出现此消息。
lsusb -v
命令查看设备时,你是否看到了 255/66/1 接口?如果没有看到,那么设备本身存在问题。在 PC 端进行的任何更改都无法改变这一点。 - Alex P.