ADB не может найти мое устройство / телефон (MacOS X)

Я занимаюсь разработкой Android на Mac, и этот новый телефон, который у меня есть, не отображается в списке устройств в adb. Многие другие телефоны и устройства работают нормально для меня, поэтому я знаю, что мои настройки хороши.

У меня включена отладка (Настройки -> Приложения -> Разработка -> Отладка USB) на телефоне, но она не отображается при запуске adb devices

38 ответов

Решение

Дополнительное обновление: не стоит недооценивать ценность хорошего USB-кабеля. Иногда просто замена кабелей поможет.

Обновление для новых версий ADB, ~/.android/adb_usb.ini должен быть удален.

Резюме: Добавьте идентификатор поставщика в ~/.android/adb_usb.ini и перезапустите ADB

Полная информация: Большую часть времени ничего не нужно будет делать, чтобы заставить Mac распознавать телефон / устройство. Серьезно, 99% времени "это просто работает".

При этом самый быстрый способ сбросить adb - это перезапустить его следующими последовательными командами:

  adb kill-server
  adb devices

Но время от времени adb devices Команда просто не может найти ваше устройство. Может быть, если вы работаете с каким-то экспериментальным или прототипным или необычным устройством, возможно, оно просто неизвестно и не будет отображаться.

Вы можете помочь adb найти ваше устройство, сообщив ему "Vendor ID" вашего устройства, по сути предоставив подсказку. Это можно сделать, поместив шестнадцатеричный идентификатор поставщика в файл ~/.android/adb_usb.ini

Но сначала вы должны найти значение идентификатора поставщика. К счастью, на Mac это довольно просто. Запустите приложение Информация о системе. Он расположен в /Applications/Utilities/ папку, или вы можете получить к нему через меню Apple в верхнем левом углу экрана, выберите "Об этом Mac", а затем нажмите кнопку "Подробнее...". Захват экрана здесь:

Информация о системе, аппаратное USB-дерево

Разверните дерево "Оборудование", выберите "USB", затем найдите ваше целевое устройство. В приведенном выше примере мое устройство называется "SomeDevice" (я сделал это в фотошопе, чтобы скрыть реального производителя устройства). Другим примером может быть планшет Samsung, который отображается как "SAMSUNG_Android" (кстати, мне не нужно было делать ничего особенного, чтобы заставить планшет Samsung работать.) В любом случае, щелкните свое устройство, и полная информация отобразится на панели ниже. Это где он перечисляет идентификатор поставщика. В моем примере со скриншота значение 0x9d17 - используйте это значение в следующей команде

echo 0x9d17 >> ~/.android/adb_usb.ini

Это нормально, если у вас этого еще не было adb_usb.ini файла до этого, в большинстве случаев он просто не нужен для поиска вашего устройства, поэтому нет ничего необычного в том, что этот файл отсутствует. Приведенная выше команда создаст его или добавит в конец, если он уже существует. Теперь выполните команды, перечисленные выше, чтобы перезапустить adb, и все будет хорошо.

adb kill-server ; adb devices

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
123ABC456DEF001 device

Решение, специфичное для Nexus 4 и Nexus 5 для OS X

У меня не было устройства, указанного в "Списке подключенных устройств", когда я запускал: adb devices

Fix:

  1. Получить SDK (последняя версия) от http://developer.android.com/sdk/index.html
  2. Включите режим разработчика на Nexus 4 (О телефоне> Номер сборки> нажмите 7 раз, чтобы войти в режим разработки)
  3. Новая опция меню появится в 'Settings': { } Параметры разработчика
  4. Обязательно проверьте следующее в { } Параметры разработчика:
    • Отладка USB: режим отладки при подключении USB (принять всплывающее окно с отпечатками пальцев RSA)
    • Проверка приложений через USB: проверьте приложения, установленные через ADB/ADT, на вредное поведение

Попробуйте перечислить ваше устройство из устройств./adb, и оно должно работать.

Ответ взят из: Любая идея, почему ADB не распознает мой Nexus 4 на Mac

Если вы установили приложение EasyTether, это может помешать работе ADB.

С этой страницы вы можете выполнить команду:

sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext 

это разгрузит ваше расширение EasyTether.

Если вам нужно снова включить EasyTether для модема, я думаю, вы можете использовать:

sudo kextload /System/Library/Extensions/EasyTetherUSBEthernet.kext 

Это работало на моем Samsung Galaxy S2. В моем случае было необходимо выполнять команду kextunload при каждой перезагрузке.

У меня была похожая проблема. Я обнаружил, что MTP не поддерживается в OSX. Я изменил его на PTP, меня повысили до одобрения моего ноутбука, и затем мое устройство было в списке (LG G3).

Если вы используете следующие устройства:
Samsung S3 GT-I9305 (Android 4.1.2)
Mac OS 10.6.8

Сделайте следующее:

# echo "0x04e8" >> ~/.android/adb_usb.ini
# adb kill-server
# adb devices

(если вы не используете устройство Samsung, измените идентификатор поставщика "0x04e8" на правильное значение вашего поставщика)

Если все еще не работает, вы можете попробовать следующее:

(1) На устройстве Samsung отключите "Отладку USB" и снова включите его.
(и попробуйте команды adb снова)

(2) Отсоедините USB-кабель и снова подключите его

(3) удалить Samsung Kies

(4) Установить Android File Transfer

(5) Перезагрузите Mac и устройство Samsung

(6) Используйте аппаратное устройство для тестирования вашего Android-приложения

После подключения устройств, но вы внезапно отключили USB-кабель, и предположим, что теперь "устройства adb" больше не могут видеть ваше устройство, даже после "adb kill-server", в этом случае вы можете попробовать следующее:

(1) выключите ваш Mac
(2) отключить "USB debuggine" на вашем устройстве Samsung
(3) выключите устройство Samsung
(4) включить ваш Mac
(5) включить устройство Samsung
(6) включить "USB debuggine" на вашем устройстве Samsung
(7) подключите USB-кабель
(8) Запустите "adb devices"
(9) Теперь вы должны увидеть подключенное устройство

Верьте или нет, обмен USB-кабелями решил это для меня. Я использовал случайный (который не работал), и как только я переключился на тот, который поставляется с реальным устройством Android, это сработало.

Еще одним признаком того, что хороший кабель работал, было то, что приложение Android File Transfer немедленно запустилось, чего не случилось с дрянным кабелем.

Также убедитесь, что вы не используете USB-кабель, предназначенный только для зарядки. Это только что получил меня. И это на самом деле было помечено "только для зарядки"

В моем случае это было из-за USB-кабеля.

Я обнаружил, что есть два типа USB-кабелей:

  • Те, которые только поставляют энергию
  • Те, которые обеспечивают питание и могут передавать данные

И трудно понять, к какому типу относится кабель USB. Теперь я делаю надрез на своих кабелях с передачей данных.

Это сработало для меня только после того, как я включил отладку usb для разработчиков на телефоне:

На вашем телефоне Android перейдите в "Настройки"> "О программе", затем несколько раз нажмите "Номер сборки", пока не будут включены "Параметры разработчика".

ПРИМЕЧАНИЕ ДЛЯ ЛЮДЕЙ, КОТОРЫЕ НЕ МОГУТ ПОЛУЧИТЬ ЛЮБУЮ ЭТУ СОВЕТУ ДЛЯ РАБОТЫ

Попробуйте запустить Console.app и следить за ошибками при подключении устройства. Я получал

# The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying.

Он сохранился после перезагрузки, поэтому я в конечном итоге сбросил PRAM, и он снова заработал.

КАК ВЫПОЛНИТЬ СБРОС PRAM

  1. Выключите машину полностью.
  2. Коротко нажмите кнопку питания
  3. Удерживайте Ctrl + Option + P + R
  4. Подождите, пока вы не услышите загрузочный звонок в третий раз
  5. Отпустите все ключи и дайте машине продолжить загрузку полностью

Простая смена кабеля и авторизация Mac работали на меня!

Вот еще одна вещь, которую стоит попробовать, если вы, как и я, перепробовали все остальные ответы и не повезло.

В моем случае (Android 4.3) я зашел в настройки USB под уведомлениями и перешел из режима MTP (медиаустройство) в PTP (камера), и как только он переключился, устройство появилось в списке устройств ADT.

Я столкнулся с той же проблемой, и следующие исправили ее.

  • Убедитесь, что на вашем телефоне включена отладка по USB.
  • Установить Android File Transfer
  • Вы получите два уведомления на свой телефон, чтобы позволить подключенному компьютеру иметь доступ, и другое, чтобы разрешить доступ к мультимедиа на вашем устройстве. Включить оба.
  • Ваш телефон теперь будет распознаваться, если вы наберете "adb devices" в терминале.

С новой версией ADB, вы должны удалить ~/.android/adb_usb.ini

Я должен был включить USB debugging (Security settings) опция разработчика в дополнение к USB debugging в Redmi Note 4.

Я столкнулся с той же проблемой и потратил полдня на поиск решения. Но все было напрасно. В первом ответе упоминается проблема с USB-кабелем, которая не привлекла внимания. Так что, если кто-то сталкивается с той же проблемой, я предлагаю, прежде всего

Попробуйте другиеUSB Cablesпотому что некоторые кабели используются только для зарядки, а не для передачи данных

Если это не принесет вам удачи, вы можете попробовать другие ответы.

Еще одна хитрость в современном Android состоит в том, что вы устанавливаете поведение устройства, выбирая "Использовать для" устройства.

Например, если для зарядки установлено значение "Использовать для", устройство не будет обнаруживаться ADB. переключение на PTP/MTP другое, более "активное" поведение, автоматически сделает ваше устройство обнаружимым.

Если вы пытаетесь обнаружить Samsung Galaxy S3, то на телефоне перейдите в настройки -> Параметры разработчика -> Убедитесь, что отладка USB проверена

На всякий случай, если это кому-нибудь поможет в будущем, я случайно отключил "Отладку по USB" в своих настройках, когда включал / отключал "Показать границы макета". Итак, сначала проверьте эту настройку в ваших "Опции разработчика".

Я переключился на другой порт USB, и он появился в списке устройств adb.

Это было единственное, что сработало для меня из всех предложенных здесь решений. Это было предложено @user908643 в этом комментарии.

Ни один из приведенных выше ответов не помог мне. В macOS Mojave откройте консольное приложение, вы можете увидеть такую ​​ошибку:

001076.240057 adb@(null): IOUSBUserClientLegacy::start: missing entitlement com.apple.appledfr.client

Даже сброс Mac PFRAM не помог. Чтобы исправить эту проблему:

  1. Подключите Android-устройство через USB-кабель (у меня работал двойной кабель USB-C).

  2. Зайдите в Настройки -> .. -> Параметры разработчика и нажмите Отменить авторизацию отладки USB.

  3. Телефон Android перезагрузится.

  4. Перейдите в Настройки -> .. -> Параметры разработчика и убедитесь, что отладка по USB включена.

  5. Теперь в терминале macOS введите:

    adb devices
    
  6. Вы можете увидеть свое устройство в списке.

Это сработало на моем телефоне Google Pixel 2.

Попробуйте перезагрузить компьютер (если он когда-либо был обнаружен и перестал появляться) - мать всех решений!

Также убедитесь, что вы проверите веб-сайт поставщиков для их драйверов "USB". У меня была эта проблема с моим AT&T Galaxy Note (под управлением Android 2.3.6), и он не был распознан adb без установки драйвера, которую я получил с сайта samsung.

Ни один из приведенных выше советов не помог мне в настройке Mac OS X Lion. У меня телефоны Motorola под управлением 2.3.6. Оказывается, мне нужно было установить драйверы для телефонов Motorola. Я нашел их здесь.

На LG G3 я смог заставить его работать, установив ADB с помощью homebrew ( Установка ADB на MAC OS X), а затем отключив / включив отладку по USB.

В моем случае (планшет Samsung s5e) после включения режима разработчика путем 7-кратного нажатия номера сборки мне также пришлось включить отладку по USB в разделе «Параметры разработчика» .

Попробовав все вышеперечисленное, последний недостаток был в том, чтобы включить отладку по USB в параметрах разработчика, которая была скрыта в моем 4.4 Galaxy Note 10.1.

Смотрите пункт 5.2 по этой ссылке.

Это чертовски странно, но просто подключение к USB-порту, расположенному рядом с портом Thunderbolt на моем MBP середины 2014 года с Retina, сработало!

Другой порт USB просто не распознает устройство.

В моем случае USB-отладка не была включена на моем устройстве, но при подключении устройства к моему macbook на экране не появилось знакомое диалоговое окно "Allow USB Debugging".

У меня все заработало, перезапустив мой Oneplus 5T после включения режима разработчика.

Другие вопросы по тегам