Пять дней назад я установил Android Studio на полностью обновленную Ubuntu 2018.04, использовал мастер для создания примера приложения, нажал кнопку «Выполнить», и он отлично работал на моем устройстве Android, подключенном через USB.
Сегодня, в той же Ubuntu и с тем же подключенным устройством, я открыл тот же проект и снова нажал «Run». Теперь это терпит неудачу:
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
Я сознательно не изменял никакую конфигурацию Ubuntu и даже не обновлял ОС.
В чем может быть проблема?
Как продолжить расследование?
Эта процедура решает проблему для меня:
Это могло бы быть случайно, но это всегда имеет (приблизительно 50 раз), работал до сих пор.
В последних версиях Android название меню и объекта выбора изменилось немного, но это все еще работает на меня.
Короче говоря: группа 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"
(lsusb
→ 18d1:d002
)
И включение и сделало работу для меня. Теперь, устройство находится в plugdev
группа.
Я получал подобную ошибку из-за правил 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]
Я смог работать вокруг этого путем выполнения:
adb kill-server && adb start-server
но это нисколько не было идеально. Я зафиксировал его путем установки:
sudo apt install android-tools-adb
Который является сохраняемым сообществом набором по умолчанию правил udev.
Поскольку один из них упомянутый, удаляя провод USB из ноутбука и повторно подключая его добился цели для меня. (Я, возможно, включил USB Debugging
опция после того, как я соединил его в первый раз, следовательно ошибка),
Вот как я сделал
Теперь вы можете увидеть новое устройство, добавленное в список устройств.
Скопируйте идентификатор устройства с терминала. Идентификатор отображается как первая часть: вторая часть
Например, для приведенного ниже идентификатора устройства это 2a70: 4ee7
Шина 001 Устройство 007: ID 2a70: 4ee7
Отредактируйте правила Udev используя nano
sudo nano /etc/udev/rules.d/51-android.rules
Добавьте эту строку в конец файла. Замените 2a70 и 4ee7 на первую и вторую часть идентификатора устройства
SUBSYSTEM == "usb", ATTR {idVendor} == " 2a70 ", ATTR {idProduct} == " 4ee7 ", MODE = "0666", GROUP = "plugdev"
Y на "Да"
Теперь перезагрузите правила разработчика
sudo udevadm control --reload-rules
Вот и все должно работать