6

过去我从来不需要设置这个,但我今天将 Android Studio 更新到 2.3.1 版本,并在单击调试时出现此错误:

05/03 17:19:19: Launching app
$ adb push app-debug.apk {path on my computer}
com.android.ddmlib.AdbCommandRejectedException: insufficient permissions for device: verify udev rules.
See [http://developer.android.com/tools/device.html] for more information.
Error while Installing APK

我去了他们指定的页面,他们告诉我制作文件/etc/udev/rules.d/51-android.rules

所以我做了,添加了这一行:

SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"

对于我的(华为)Nexus 6P。

正如他们指定的那样,我还将该debug部分添加到。build.grade

但是,我仍然遇到同样的错误。我尝试用我自己的 linux 用户组代替plugdev,但这也没有解决问题。有什么建议么?

4

2 回答 2

8

请注意,它可能会报告不同的 ID,具体取决于设备的当前 USB 模式。

因此重要的是首先启用USB调试...

然后使用lsusb获取供应商和产品ID ...

Bus 001 Device 070: ID 18d1:4ee7 Google Inc.

罪魁祸首可能是供应商 ID,12d1华为在哪里 - 并且18d1是谷歌。

...任何lsusb输出都符合udev规则:

# angler (Nexus 6P)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0600", OWNER="yourusername"

然后运行:

sudo udevadm control --reload-rules
于 2019-01-17T19:04:14.280 回答
1

您可能没有添加正确的ATTR{idVendor}属性。为此,请执行以下操作:

$ sudo adb devices
List of devices attached
adb server is out of date.  killing...
* daemon started successfully *
XXXXyyyy    device
  1. 运行后adb devices你会看到上面的输出。

  2. 复制device输出的前 4 个字节(so, XXXX)。ATTR{idVendor}=="XXXX"用in替换那些/etc/udev/rules.d/51-android.rules并重新启动udev

正如下面的评论所示,上述方法可能行不通;另一种选择是使用lsusbor tail dmesg

于 2017-07-05T18:59:14.913 回答