启用 MTP 后,Ubuntu 上的 Nexus 设备对 ADB 不可见
Nexus device not visible to ADB on Ubuntu when MTP is enabled
This question 描述了与 Windows 7 相同的问题。问题是 adb devices
显示没有设备,尽管安装了最新的 Android SDK,并且进行了 USB 调试已在平板电脑中打开。
我的案例是 Nexus 9 上的 Android 5.1.1。据我所知,该问题也存在于其他设备上。我不知道其他 Android 版本。
One solution是在设备上禁用MTP:
设置 --> 存储 --> 左上选项(计算机 USB 连接)点击 --> 取消选中“选择 MTP”
但是,如果您希望自动化该过程,这可能无法实现。
Linux 的解决方法是防止 MTP 探测发生(这允许 Android 设备继续显示为具有 MTP 和 ADB 接口的复合设备)。在 Ubuntu 上执行此操作的最简单方法是 sudo apt get remove libmtp-common libmtp-runtime libmtp9
,然后重新启动。您将无法再在那台计算机上使用 MTP。
您可以使用 lsusb -v
来验证 MTP/ADB 问题是否已解决;如果您在设备下看到多个 bInterfaceDescriptor
,其中一个 bInterfaceSubClass
为 66
(0x42),但您在 adb devices
中仍然看不到任何条目,则您有一个不同的问题。
This question 描述了与 Windows 7 相同的问题。问题是 adb devices
显示没有设备,尽管安装了最新的 Android SDK,并且进行了 USB 调试已在平板电脑中打开。
我的案例是 Nexus 9 上的 Android 5.1.1。据我所知,该问题也存在于其他设备上。我不知道其他 Android 版本。
One solution是在设备上禁用MTP:
设置 --> 存储 --> 左上选项(计算机 USB 连接)点击 --> 取消选中“选择 MTP”
但是,如果您希望自动化该过程,这可能无法实现。
Linux 的解决方法是防止 MTP 探测发生(这允许 Android 设备继续显示为具有 MTP 和 ADB 接口的复合设备)。在 Ubuntu 上执行此操作的最简单方法是 sudo apt get remove libmtp-common libmtp-runtime libmtp9
,然后重新启动。您将无法再在那台计算机上使用 MTP。
您可以使用 lsusb -v
来验证 MTP/ADB 问题是否已解决;如果您在设备下看到多个 bInterfaceDescriptor
,其中一个 bInterfaceSubClass
为 66
(0x42),但您在 adb devices
中仍然看不到任何条目,则您有一个不同的问题。