当我尝试:
$ adb devices
我得到的结果:
List of devices attached
???????????? no permissions
问题是什么?
在 Ubuntu 16.04 机器上尝试过,它运行完美。尝试过 7.1.1 设备,它也运行完美。
答案1
有同样的问题。确保设备 USB 模式不是 仅充电已经解决了。
答案2
尝试重新启动 Adb 服务器。
sudo adb kill-server
进而
sudo adb start-server
然后连接你的设备,打开调试并输入
adb devices
答案3
很可能是 udev 错误地添加了您的设备。我也遇到过这个问题,并找到了一个相对简单的解决方案。
在 lsusb 中找到你的设备
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink)
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
本案例中的兴趣点:
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
查看相应设备文件
$ ls -l /dev/bus/usb/001/006
你可能会看到类似
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
这意味着设备文件将由用户 root 和组 root 拥有,这就是为什么 adb 可以以 root 身份访问它但不能以标准用户身份访问它。
这可以通过创建一个新的 udev 规则来解决 - 我曾经使用过/etc/udev/rules.d/51-android.rules
- 将设备添加到组plugdev
,adb 已经假定您是该组的成员(您应该是,请检查使用id
)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
**请记住将 ATTR{idProduct}=="4ee7" 替换为您在第一步中找到的自己的产品 ID。**(如果您的供应商不是 Google Inc.,也请将供应商 ID 替换为 lsusb 中冒号前的 ID)。
现在只需拔下您的设备并重新插入(udev 应该自动响应新文件)然后 tadaa:
$ adb devices
List of devices attached
YC873P0G device
答案4
您需要在 Android 设备上提供权限。转到“设置”>“开发者选项”。尝试关闭 USB 调试,然后重新打开。拔下电缆并重新连接。还可以尝试从开发者选项中删除所有已保存的授权。它现在应该会通过手机上的提示请求调试权限。接受它。