AdbCommandRejectedException:设备权限不足:plugdev 组中的用户;你的udev规则错了吗?

Nic*_*oul 30 android udev adb android-studio 18.04

五天前,我在完全更新的 Ubuntu 2018.04 上安装了 Android Studio,使用向导创建了一个示例应用程序,按下“运行”按钮,它在我通过 USB 连接的 Android 设备上完美运行。

今天,在同一个 Ubuntu 上并插入同一个设备,我打开同一个项目并再次按“运行”。现在失败了:

Launching Application
$ adb push /home/nico/src/ActionBarCompat-Basic/Application/build/outputs/apk/debug/Application-debug.apk /data/local/tmp/com.example.android.actionbarcompat.basic
com.android.ddmlib.AdbCommandRejectedException: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for more information
Error while Installing APK
Run Code Online (Sandbox Code Playgroud)

我没有故意修改任何 Ubuntu 配置,甚至没有更新操作系统。

可能是什么问题呢?
如何进一步调查?

Nic*_*oul 45

这个过程为我解决了这个问题:

  • 在 Android 设备上,拖动顶部菜单并选择“USB 用于文件传输”
  • 再次按“运行”

这可能是偶然的,但到目前为止它一直(大约 50 次)有效。

在最近的 Android 版本中,菜单和选项的名称发生了一些变化,但它仍然适用于我。

  • 谢谢!这个对我有用。当我只选择 USB 调试时它不起作用,但当我选择 USB 文件传输时,应用程序立即运行。 (2认同)

Use*_*ser 18

简而言之:USB 设备的组是root,而不是plugdev

添加文件 /etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"
Run Code Online (Sandbox Code Playgroud)

( lsusb? 18d1:d002)

插入和拔出对我有用。现在,设备在plugdev组中。

来源


小智 8

由于未配置 udev 规则,我收到了类似的错误:

kirk@laptop:~$ adb devices
List of devices attached
FA7240300631    device
FA7240300631    no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html]
Run Code Online (Sandbox Code Playgroud)

我能够通过运行来解决这个问题:

adb kill-server && adb start-server
Run Code Online (Sandbox Code Playgroud)

但这一点都不理想。我通过安装修复它:

sudo apt install android-tools-adb
Run Code Online (Sandbox Code Playgroud)

这是一组由社区维护的默认 udev 规则。

来源