Обнаружение устройства для отладки (ADB) не работает
Я включил USB-отладку на моем Archos 43 Internet Tablet (Android 2.3.26), но adb не обнаружил устройство.
У меня есть Kubuntu 11.04.
Вывод команды оболочки "lsusb":
[email protected]:~/.android_sdk/platform-tools$ lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0e79:1411 Archos, Inc.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Итак, мой "Идентификатор поставщика" равен 0e79, не так ли?
Для следующего шага я создал следующий файл:
sudo kate /etc/udev/rules.d/51-android.rules
со следующим содержимым:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0e79", MODE="0666"
После этого я установил разрешения:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
Затем я сохранил его и перезапустил udev:
sudo /etc/init.d/udev restart
И после выполнения всех этих действий adb все еще не отображает мое устройство:
[email protected]:~/.android_sdk/platform-tools$ ./adb devices
List of devices attached
<empty line, because stackoverflow does not display this>
Ответы
Ответ 1
В некоторых случаях вам также необходимо добавить идентификатор поставщика к этому файлу: ~/.android/adb_usb.ini
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x0e79
Учтите, что этот файл может быть перезаписан при обновлении SDK, поэтому вам может потребоваться повторно его отредактировать.
Ответ 2
Mageia 2
Сначала я получил что-то вроде:
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
Затем я обнаружил, что мне нужно выполнить настройки | Приложения | Разработка и проверка USB-отладки.
$ adb devices
List of devices attached
???????????????? no permissions
Попытка как root, я получил:
$ su -l
# adb devices
List of devices attached
???????????????? no permissions
Тогда я понял, что adb все еще работает как обычный пользователь. Когда, как root, я сделал:
# adb kill-server
# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline
АБР для Android Developers (интернет-планшет ARCHOS) был полезен, за исключением того, что я сделал это как root:
# cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
SUBSYSTEM=="usb", ENV{PRODUCT}=="e79/*", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"
# udevadm control --reload-rules
# udevadm monitor
.
.
.
^C
Команда монитора была полезна, потому что она показывала, что устройство подключается, отключается, проходит путь и т.д.
Затем я смог остановить работу сервера под управлением root и запустить его как обычный пользователь:
# adb kill-server
# exit
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline
Устройство не будет работать, когда "офлайн". Чтобы исправить это, мне пришлось перезагрузить Archos 43.
$ adb devices
List of devices attached
A43-A44C0002-9BF80000-0C60C4CC-0D020027 device
Хотя я сомневаюсь, что эти действия были необходимы, чтобы играть в нее безопасно, после перезагрузки я обязательно включил USB и выберет Charge Only, прежде чем я включу USB Debugging. Я также отключил Wi-Fi и Syncing, но после того, как он начал работать, adb все равно будет подключаться к тем, кто находится.
На этом этапе загрузка моего приложения работала:
$ adb install bin/HelloWorld.apk
2914 KB/s (157589 bytes in 0.052s)
pkg: /data/local/tmp/HelloWorld.apk
Success
P.S. На следующий день, зная, что все работает накануне, я загрузил свою систему разработки и попытался подключиться снова. Это дало статус "offline". Я отключил синхронизацию и WiFi, не перезагружая Archos 43, а затем adb devices
показал статус "устройство" вместо "офлайн". Я не уверен, что с этим делать, но отключение этого материала может иметь значение в конце концов.
Ответ 3
После выполнения команды sudo /etc/init.d/udev restart
вам необходимо перезагрузить систему!
Я знаю, это похоже на поведение окон, но я сломал голову на 3 часа, прежде чем открывать эту штуку.
Ответ 4
Я позаимствовал кабель с SD-кард-ридера, и он не работал для adb, пока он работал на SD-ридере.
Я пробовал новый кабель, и низкоуровневые устройства adb распознают устройство!
Ответ 5
Собственно, точно так же, как Aultbot, замена троса сделала и трюк для меня. Странно, поскольку я использовал кабель в течение нескольких часов, когда он неожиданно не работал с АБР.
Кроме того, убедитесь, что вы принимаете соединение на телефоне (новая функция безопасности в Android 4)
Изменить: В последнее время некоторые проблемы касаются службы adb. Если он не запущен (проверьте с помощью netstat или аналогичного или введите "set ADB_TRACE = 1" перед запуском вашей команды adb, чтобы получить отладочные сообщения), затем проверьте потоки, связанные с этим сообщением об ошибке. Общей проблемой является то, что порт по умолчанию используется некоторым другим приложением (изменить порт, набрав "set ANDROID_ADB_SERVER_PORT = 12345" перед командой adb).
Ответ 6
Я нахожусь на ubuntu 11.04, единственный способ получить adb для подключения к моей Atrix - это изменить режим USB-подключения на "Windows Media Sync". Что странно в первую очередь, но это особенно странно, потому что ADB на windows не будет подключаться, когда он настроится на выигрыш медиа-синхронизации.
Или вы можете использовать беспроводной adb. Там есть пара виджетах, которые позволяют легко включить wifi adb. Они отображают IP-адрес в виджетах и все такое.:)