Устройство Android ADB в автономном режиме, не может выдавать команды

329

Я больше не могу подключиться к своему устройству с помощью ADB через командную строку или в Eclipse .

Выполнение команды

adb devices

возвращает имя устройства, но оно говорит, что оно в автономном режиме.

Вещи, которые я попробовал.

  1. Переключенный режим отладки Android
  2. Переустановил драйвер Google USB
  3. Восстановил ОС до ранее работающей резервной копии ( CyanogenMod )
  4. Поменял шнур USB
  5. Перезагрузил телефон / компьютер несколько раз
  6. Обновлен Android SDK

Я действительно понятия не имею, что происходит. Все, что вы думаете, я могу попробовать, я весь слух.

Для ясности, если у вас возникла такая же проблема, вероятно, это устаревший SDK. Начиная с 4.2.2 существует функция безопасности, которая требует подтверждения отпечатка пальца RSA подключенного устройства. Откройте менеджер SDK и обновите инструменты! Затем перезагрузите компьютер.

Брайан
источник
22
попробуйте другой порт USB.
Jayellos
единственный другой порт - usb3
Брайан,
3
Я также столкнулся с такой проблемой. * Я выполнил команду adb kill-server, adb start-server. * попробуйте другой порт USB, в основном он будет работать на задней панели ПК., * перезапустите устройство, * перезапустите eclipse, * перезагрузите компьютер, * замените USB-кабель, некоторые USB-кабели не будут работать (низкое качество). Наконец, если проблема не решена, переустановите драйвер USB устройства.
Jayellos
3
Так случилось и со мной. В моем случае я просто отключаю опцию «Разработчик», а затем снова включаю. Вот и все.
Kyaw Nyi Win

Ответы:

139

Я только что получил ту же проблему сегодня после того, как мой Nexus 7 и Galaxy Nexus были обновлены до Android 4.2.2.

Для меня было исправлено обновление инструментов платформы SDK до версии 16.0.1. Для меня эта версия не отображалась в моем менеджере SDK, поэтому я снял ее с http://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip напрямую.

Затем вам нужно переименовать platform-toolsкаталог и разархивировать его android-sdk-windows/platform-tools. Используя SDK Manager, я также до этого обновлялся до последних sdk-tools.

Если все ваши Eclipse и ADT древние, вам, возможно, потребуется обновить их, но мне это не нужно.

Примечание: вам может потребоваться запустить SDK Manager дважды (один раз, чтобы обновить себя), прежде чем вы увидите последние пакеты.

Peter Mortensen
источник
1
У меня r17 но у меня такая же проблема. Поможет ли возврат к r16.0.1?
Александр Сурафел
@ Спартак Я не думаю, поэтому я думаю, что проблема для вас может быть теперь в другом месте.
hack_on
Решена проблема, связанная с отсутствием платформы Android SDK
Тай Дао
Работал именно в указанном порядке. Последний шаг - разрешить это по телефону.
влад
24
Просто перезагрузите телефон или устройство и наслаждайтесь, не нужно перезапускать ADB больше ничего.
UMAR
135

Попробуйте запустить adb devicesпосле запуска adb kill-server. После этого всплывает секретный вопрос. Работал на меня.

Thomas Economous
источник
Работает, если ваши драйверы уже обновлены и по-прежнему возникают проблемы. Я думаю, что и в других случаях это может сработать.
kAmol
Обязательно отсоедините любые другие машины от устройства. В моем случае мой хост виртуальной машины все еще был подключен через tcpip, и мой гость мог все еще успешно соединиться, но это было бы автономно. Чтобы получить приглашение RSA, мне нужно было выполнить adb kill-serverкоманду на моем хосте, прежде чем подключаться к гостю через adb connect 192.x.x.x.
после этого стартовый сервер adb
madz
В общем-то, вот и все. Примите ответ для особого случая.
Ратул
Должно быть, я пропустил «разрешить отладку по USB от xx: xx: xx» на телефоне. Перезапустите сервер и снова подключите USB.
Дэн Болсер
77

Это также часто встречается при подключении к устройству в режиме Wi-Fi (например, в Android Studio или в консоли, запустив его adb tcpip 5555).

Исправить:

  1. Отключите соединение USB или отключите Wi-Fi устройства, если вы подключены через Wi-Fi.
  2. Закройте Android Studio / Eclipse / другие IDE.
  3. Запустите, adb kill-serverчтобы убедиться, что ADB не работает.
  4. Перезагрузите ваше устройство Android.
  5. После перезагрузки устройства подключите его через USB и запустите adb devices. Это должно запустить демон ADB. Ваше устройство должно снова быть в сети.
Aaron
источник
2
Шаг 3, скорее всего, является ключевым решением здесь! закройте интерфейс командной строки и завершите процесс, если он все еще работает, и попробуйте снова!
Reubenjohn
Это работает для меня (Galaxy Tab GT P7500 с Windows 7)
Sarvan
Работал у меня с Android 8.0 и Windows 10
andoni90
Я попытался adb kill-serverбез перезагрузки устройства Android, и это не сработало. Когда я повторяю эти шаги и перезагружаю устройство, как указано в разделе 4, оно работает.
E235
62

Я столкнулся с той же проблемой на Nexus 7 с обновлением 4.2.2 OTA. Я почти уверен, что у меня было соединение ADB через USB и Wi-Fi после обновления, пока оно просто не перестало работать. Чтобы исправить, я обновил свой SDK, используя:

android update sdk --no-ui

Теперь мои инструменты разработки:

  • SDK ред. 16.0.2
  • SDK tools rev 21.1
  • SDK API 17, ред. 2
dturvene
источник
1
«android» не распознается как внутренняя или внешняя команда, работающая программа или командный файл ». - также сделал "dir android.exe / s" из корня моего диска C: - ничего не нашел - вы используете Linux, или у вас есть какие-то особые биты, которых нет у нас, пользователей Windows?
BrainSlugs83
Да, я использую Linux. android - это скрипт оболочки под ./sdk/tools/, который запускает Java-приложение android SDK Manager. В архиве Windows SDK должен быть сопоставимый скрипт.
dturvene
7
Данная команда может быть использована в Windows, если она выполняется из вашего пути к каталогу \ to \ android-sdk \ tools \
гаджет
4
В Windows 7, чтобы ввести команду из каталога ... \ android-sdk \ tools \ и заставить ее работать, запустите командное окно «Как администратор».
Джон Джорсетт
У меня это работало с Nexus 10 и Galaxy Nexus. Я использую Windows XP SP3. Я попытался изменить порт USB, перезагрузки, Etx .. ничего не помогло, но этот ответ. Я почти собирался переустановить XP, спасибо!
Fer
44

Не могу не подчеркнуть, что переключение портов USB является ключевым. Часто порты USB на передней панели могут быть неисправны.

Майк Вейр
источник
5
У меня тоже сработало. Иногда кажется, что Nexus 10
потребляет
Ничего себе, после 1/2 часа тупиков, это оказывается, что это проблема питания USB! Спасибо!
bigjosh
Иногда это не дефектный порт. В моем случае во время загрузки Windows USB был подключен, и драйверы ADB загружались неправильно. Просто отключил и снова подключил в тот же порт. Windows чудеса ...
Рикардо BRGWeb
1
Иногда переключение портов работает. Иногда дело в поддержке USB2 и USB3 из различных комбинаций порты + кабель + устройство. Иногда помогает переключение с передних на задние порты или с индикатором «SS» или без него (USB3). Иногда помогает другой кабель.
Джон Адамс
8 часов впустую для меня. Он работает на USB 3.0, но не на USB 2.0 по некоторым причинам (по крайней мере для меня). Никогда не было такой проблемы до сих пор, и вдруг я должен использовать 3.0. Который сейчас тратит один из моих портов 3.0.
Райан
39

Для всех, кто интересуется 4.2.2, на телефоне появляется секретный вопрос с запросом проверки RSA на ПК. Убедитесь, что ваши инструменты обновлены, и вы разрешите доступ к ПК, проверив контрольный вопрос на соответствующих устройствах. Это исправило это для меня.

И, как всегда, убедитесь, что у вас включена отладка в настройках разработчика;)

Эрик Фоссум
источник
7
Это сработало для меня, как только я отменил авторизацию отладки USB. Затем отключил и снова включил отладку по USB. Появилось сообщение «Разрешить этот компьютер», и BAM показывалось как устройство, а не как офлайн.
CrazyPenguin
21

Несколько файлов adb.exe?

Моя проблема была решена, когда удалил копию OLD adb.exe из C: / Windows / . Я не знаю, как копия adb.exe попала в C: \ Windows \?

Когда я запускал adb.exe из android-sdk / platform-tools /, у меня не было проблем с обнаружением.

user1269737
источник
Это то, что случилось со мной. Я думаю, что что-то, что я скачал, чтобы установить ROM два года назад, было виновником.
gengkev
Моя Windows 8 имела ту же проблему, и переименование в c:\windows\adb.exeчто-то другое ( adb.old.exe) решило проблему. Мне даже не нужно было перезагружать или открывать / закрывать командную строку. Это просто работает. Я набрал adb devicesсразу после переименования старого, adb.exeа затем мой Nexus 7 спросил, хочу ли я авторизовать этот компьютер. Я сказал да, и теперь, когда я выпускаю adb devicesвместо «офлайн», он говорит «устройство».
AlexStack
1
Спасибо, это работает! То же самое случилось и со мной, я думаю, что adb.exe копируется в C: \ Windows, когда мы установили драйвер, прилагаемый к устройству.
thinzar00
Как это получилось, хотя: / Я хочу знать
Даниэль Чунг
1
@DanielCheung Для меня это было при установке программ KingORoot и / или ПК KingRoot. Я предполагаю, что они устанавливают версию самостоятельно, потому что они не полагаются на пользователя, имеющего установленный Android SDK. И да, удаление старой (1.0.26) версии, которую он создает из каталога Windows, устранило проблему «офлайн» для меня. :)
Venryx
20

Попробуйте отключить отладку usb один раз, затем снова включить ее, а затем подключить устройство к системе: ссылка

user3492435
источник
2
Это, безусловно, самый простой, надежный и быстрый способ. Я использовал много вариантов всех методов в этой теме. Это единственный, который работает каждый раз. Это всего лишь три нажатия на устройство Android, и проблема исчезла.
Л.Д. Джеймс
18

У меня была эта проблема, и ни один из других ответов не помог. Что было необходимо, после обновления SDK и установки API для 4.2.2, было запущено:

android update adb

Другая проблема, с которой я столкнулся, заключалась в том, что я пытался подключить ADB через Wi-Fi, что является единственным вариантом, потому что USB-порты на моем Mac действительно странные. К сожалению, ADB через Wi-Fi не показывает вопрос безопасности в 4.2.2, поэтому вам нужно найти USB-кабель, который будет работать и подключаться через USB хотя бы один раз, чтобы принять вопрос безопасности, но после того, как вы сделаете это один раз Вы можете подключиться через Wi-Fi.

glittershark
источник
Это сделало это для меня. Спасибо. С тех пор, как обновлял мой Nexus 7, я бился головой о стену.
Джейсон Саутвелл,
Я перепробовал все на этой странице и на нескольких других сайтах, которые обнаружил Google, и мой телефон HTC под управлением Android 4.0.3 по-прежнему считался офлайн. Я наконец перезапустил телефон и затем устройства adb сказали, что он был онлайн. Чувак, я бы хотел подумать об этом раньше.
Джон Джорсетт
Я получил эту ошибку: устройство в автономном режиме, пока я не нашел ваш комментарий о Wi-Fi - как только я снял свой телефон с Wi-Fi, он работал. Спасибо!
Амуррелл
17

Если ваше устройство обычно подключается через USB, но внезапно перестает работать, особенно после отсоединения и повторного подключения кабеля USB, попробуйте выполнить следующие неинвазивные действия, прежде чем выполнять некоторые из более радикальных действий, упомянутых в других ответах:

adb kill-server
adb start-server
adb devices

Если ваше устройство указано с «устройством» рядом с вами, вы вернулись в бизнес.

Если ваше устройство указано «автономно», попробуйте перезапустить устройство. Время от времени зависает демон ADB на устройстве. Я заметил это больше, когда отключил кабель во время работы LogCat и после переключения с подключения через Wi-Fi или Ethernet.

Если вашего устройства нет в списке, попробуйте найти решения в других ответах, начиная с другого USB-кабеля и порта. Эти дешевые кабели могут испортиться.

Скотт
источник
Это помогло решить мою проблему (эмулятор андроида показывался как «автономный», но после перезапуска сервера, как описано, он вернулся в режим «устройства»).
Грегори
1
После многих часов попыток найти причину, по которой adb больше не работает, это был фактически кабель!
Мартин Л.
Я был укушен плохим кабелем не раз. Плохие кабели обычно заряжают устройство нормально, поэтому я тоже потратил много времени, прежде чем пробовать другие.
Скотт
Боже мой, я перепробовал все решения, но самый простой - перезагрузить ТЕЛЕФОН - не пришел мне в голову. Это решило мою проблему.
Кибин
Мне пришлось использовать более короткий кабель - тот, который я использую для зарядки телефона, был слишком длинным!
Рик Мортенсен,
12

Обязательно используйте adbиз своей platform-toolsпапки, после обновления инструментов SDK.

Я наконец-то начал работать после того, как понял, что использую устаревшую версию ADB, скопированную в /usr/bin.

elyess.abouda
источник
где этот usr / bin?
AntWo
8

Иногда это может произойти из-за ошибки сервера ADB (я думаю). Это всегда говорит

"device-name is offline" from adb devices command.

Просто убейте сервер и начните снова. Это сработало для меня.

"adb kill-server"
"adb start-server"
Джеймс
источник
7

Я использовал, adb connect <device_ip>и ни одно из других решений не сработало, потому что моя проблема была на другой стороне. На устройстве мне нужно было stop adbdи перезагрузить его start adbd. Устройство снова подключено к сети.

PiTheNumber
источник
1
Имел Amazon Fire TV Stick, у которого была эта проблема, соединяющаяся по Wi-Fi. Toggling ADB выключив и снова, adb kill-server, adb start-server, тогда adb connect <device_ip>как предложено выше работал для меня.
chenware
6

Я столкнулся с той же проблемой, что и для меня. сначала подключите телефон через usb, затем убедитесь, что вы проверили ip своего мобильного телефона, который находится в настройках >> о телефоне >> статус, и выполните следующие команды.


adb kill-server
adb start-server
adb tcpip 5555 //it resets port so put port you want to connect
adb connect 192.168.1.30:5555 //ip:port of your mobile to connect
adb devices //you will be connected over wifi

Saqy G
источник
adb tcpip 5555 не сбрасывает порт, он просто устанавливает порт по умолчанию для текущего устройства и должен иметь место после подключения к устройству, а в следующий раз, когда вы подключаетесь к устройству по IP-адресу, даже в сети Wi-Fi, порт не требуется
Ehsan sarshar
5

Я пробовал dturvene и все другие решения, но они не работали. Мне нужен был еще один шаг.

Запустите эти команды

  1. adb kill-server
  2. android update sdk --no-ui
  3. adb start-server

Чтобы убедиться, что это сработало, запустите 'adb version' до и после команд и убедитесь, что это последняя версия. Причина adb kill-serverкоманды в том, что она, скорее всего, работает и не может быть обновлена ​​во время работы, поэтому сначала нужно ее убить.

user850688
источник
5

У меня ничего не получалось. Я провел около 12 часов в постоянном поиске в Интернете и пробовал решения, которые работали для других людей, имеющих подобные проблемы.

В конце концов я просто занялся вещанием ADB по локальной сети. Эта настройка была рядом с настройкой отладки USB, и в ADB ее можно активировать с помощью «adb connect [IPADDRESS]: [PORT]». Порт был 5555 на моем телефоне.

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

Sandro
источник
5

Этот подход работал для меня:

  1. adb kill-server
  2. Отключите автономное устройство в диспетчере устройств (см. Изображение ниже)
  3. Включить устройство в диспетчере устройств
  4. adb start-server

Диспетчер устройств, меню «Вид», «Устройства по подключению»:

введите описание изображения здесь

кол-
источник
4

Изначально я столкнулся с той же проблемой (с ADB / fastboot, загруженным с GitHub ), но в итоге заставил его работать. Что сработало для меня:

  • Android SDK. Версия АБР: 1.0.31
  • Использование порта USB на передней панели ( MacBook Pro 15 ")
  • Перезагрузка телефона после включения параметров Dev и отладки по USB (сделайте это 7 раз, нажав «Настройки»> «О телефоне»> «Сборка»).
  • Убить сервер adb, если в списке нет устройств (adb kill-server)
  • Значок отладки должен быть виден на телефоне.
  • Обязательно разблокируйте экран блокировки, чтобы проверить диалоговое окно подтверждения отпечатка пальца RSA.
TBeijen
источник
4

Установил последнюю версию Android SDK.
Поменял порт USB устройства.
Изменено с MTP -> Только зарядка -> MTP.
Это сработало.

hack3r
источник
1
Для меня переход с «Передача мультимедийных файлов» на «Передача изображений» (то есть PTP / MTP) устранил проблему (после попытки всех остальных исправлений, включая обновление Android SDK, использование других кабелей, перезапуск ADB, циклический режим разработчика, отключение / отключение / переподключение USB в разные порты и т. д.). К сожалению, этот ответ набрал 0 баллов и был на второй странице, когда я искал ответ, поэтому проголосовал, чтобы попытаться помочь другим в будущем.
Стивен Крафт
3

Если вы ранее безуспешно авторизовали отпечаток пальца RSA на своем компьютере и попробовали adb kill-server и т. Д., Ваша проблема может заключаться в том, что вы пытаетесь подключиться к нему, пока он заблокирован. Попробуйте нажать кнопку включения экрана и ввести свой шаблон - это исправило это для меня.

user1405990
источник
3

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

  1. Перейдите на вкладку «Пуск» и щелкните правой кнопкой мыши на компьютере.
  2. В раскрывающемся меню выберите пункт « Управление».
  3. На экране управления компьютером нажмите Диспетчер устройств.
  4. На правой панели разверните портативные устройства, чтобы найти свое устройство.
  5. Щелкните правой кнопкой мыши на имени вашего устройства и выберите отключить в выпадающем меню
  6. Когда он отключится, повторите шаг 5, за исключением включения его.

Устройство вернется в онлайн. Это быстрее

Nishant
источник
3

Еще одна возможность для людей с нестабильными соединениями ADB, и если они на Mac и имеют Android File Transfer : я обнаружил, что передача файлов мешала моему соединению ADB, вызывая прерывистую работу.

Уничтожение Android File Transfer Agent.appпроцесса поиска совместимых устройств (например, Nexus 7), подключенных к Mac, излечивает меня.

Peter Mortensen
источник
1
Это было то, что вызывало проблему для меня на OS X, спасибо!
Adaam
3

Поскольку никто не дал ответа на мою ситуацию: у вас может не быть доступа к файлу ~ / .android / adbkey. Если вы изначально запустите adb с помощью sudo, он сгенерирует пару открытых ключей, записав это в ~ / .android / adbkey.pub и ~ / android / adbkey. Конечно, закрытый ключ - это chmod 600 - только для чтения для пользователя root в вашем домашнем каталоге. Впоследствии запуск adb как обычного пользователя не даст доступа к файлу закрытого ключа, который, в свою очередь, завершится с ошибкой при «отключенном устройстве».

user3901558
источник
3

Для меня на Mac было решено обновление adbдо последней версии (1.0.32). Теперь я снова вижу свое устройство онлайн

Андреа Герарди
источник
3

Причина сообщения устройства как офлайн заключается в том, что adb не может подключиться к нему. Исполняемый файл adb из среды разработки создает соединение (сокет) с управляемым устройством. На устройстве есть служба (демон), которая прослушивает эту связь. Демон называется adbd (как в adbdaemon). Когда на устройстве фактически активируется adb, он запускает этот демон, поэтому связь с устройством может быть установлена.

Когда adb сообщает об устройстве как офлайн, это связано с тем, что демон больше не работает или находится в состоянии, которое не будет принимать соединения. Чаще всего это происходит, если сеть отключается при активном (сетевом) соединении.

Единственный способ исправить это - перезагрузить устройство. Можно прийти к исправлению статуса офлайн многими другими способами, но перезапуск устройства всегда работает.

Ricki
источник
3

Когда я сталкиваюсь с теми же проблемами, что и ниже:

  1. Перезапустите adb, выполнив adb kill-server, а затем adb start-server в командной строке
  2. Отключить и снова включить отладку по USB на телефоне
  3. Перезагрузка телефона, если он все еще не работает. 99% моих проблем были решены с помощью этих шагов.
Чандрама Прасад
источник
4. Попробуйте подключить кабель к другому USB-слоту. Это помогло в моем случае.
Дредкин
2

Это потому, что на вашем компьютере нет подходящего драйвера. Чтобы это исправить:

  1. Загрузите и извлеките Android SDK

  2. Зайдите в Диспетчер устройств (щелкните правой кнопкой мыши Компьютер -> Свойства -> Диспетчер устройств.

  3. На правой панели разверните портативные устройства, чтобы найти ваше устройство.

  4. Щелкните правой кнопкой мыши на имени вашего устройства и выберите Обновить драйвер

  5. Просмотрите мой компьютер для программного обеспечения драйвера

  6. Перейдите к папке Android SDK на шаге 1.

  7. Далее и все готово

user2647983
источник
То же самое для меня на Windows 7 и с Nexus 7. Он перестал работать, я удалил драйвер, установил его снова, и он работал
Michał K
В моем случае это драйвер контроллера USB 3.0, который не работает! Не драйвер для телефона!
VCD
2

Попробуйте перезапустить сервер ADB следующим образом:

adb kill-server

adb start-server

Я тоже сталкивался с теми же проблемами, что и вы. И перезапуск сервера adb решит эту проблему.

Берлин
источник
2

Я обновлялся много раз, пока не смог обновиться, но на экране никогда не появлялось приглашение; Я просто продолжал получать устройство в автономном режиме.

Моя проблема заключалась в том, что я выполнял команду ADB из другого каталога, который фактически обновлялся.

Правильный обновленный каталог для exe-файла ADB:

C:\Program Files (x86)\Android\android-sdk\platform-tools\
Adrian
источник
2

Перезагрузите устройство. Я попробовал все перечисленное здесь, чтобы заставить мой телефон HTC (под управлением Android 4.0.3) работать, но adb devicesпродолжал говорить, что он был в автономном режиме. После того, как я перезапустил телефон, он наконец был онлайн. Некоторые другие предложения, приведенные здесь, могли способствовать распознаванию телефона, но выполнение нескольких перезапусков по ходу процесса, безусловно, не повредит.

John Jorsett
источник