Logcat 连接到模拟 USB 配件时不起作用

Logcat doesn't work when connected to a simulated usb accessory

我正在开发的应用程序连接到一个 USB 配件,我在用于 program/debug 的同一台电脑上模拟该配件。
问题是,每当平板电脑更改为附件模式时,我都无法通过 USB 连接到 Logcat。(adb 中的平板电脑名称更改为数字 ID)
我可以通过 WiFi 连接到它,但每当我重新连接平板电脑(例如重置 usb 配件模式)时,adb 连接都会重置回 usb。
我知道在附件模式下可以在 USB 上使用 Logcat 运行。我只是不知道为什么这对我不起作用。

我已按照 adt-bundle 的安装步骤进行操作;尝试重新安装;尝试使用 Android Studio。

有什么想法吗?

我找到了解决问题的办法。 通过使用 sudo 重新启动 adb 服务器,当设备连接到我的模拟 usb 配件时,我能够从设备获取 Logcat 消息。

sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices

感谢 Leon 的回答 here

如果您不喜欢使用 sudo,我发现以下解决方案有效:

创建一个名为 /tmp/android.rules 的文件,其中包含以下内容(十六进制供应商编号取自 vendor list page):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"

运行以下命令:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644   /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

断开设备和计算机之间的 USB 数据线。

重新连接 phone。

运行 adb devices 确认现在它有权限访问 phone.

摘自 here.