Ошибка Eclipse: «Сервер ADB не получил ACK, не удалось запустить демон»

158

После обновления SDK Eclipse показывает эту ошибку:

Сервер ADB не получил ACK, не удалось запустить демон.

Когда я запускаю приложение Android, оно дает мне следующее:

Пожалуйста, убедитесь, что adb правильно расположен в «D: \ android-sdk-windows \ platform-tools \ adb.exe» и может быть выполнен.

Как я могу решить эту проблему?

pengwang
источник
совсем недавно установил genymotion, и после этого он начал убирать команду adb из терминала вручную и установить путь adb в переменных окружения в ubantu, указывающем на sdk / platform-tools, и тогда это сработало.
Викас Кумар

Ответы:

263

Спасибо, @jowett , я решил ту же проблему, выполнив эти шаги

Шаг 1: CTRL + Shift+, Escчтобы открыть диспетчер задач, в котором есть процесс adb.exe, и завершить (убить) этот процесс

Шаг 2: Теперь закройте затмение, которое в данный момент выполняется на моем компьютере.

Шаг 3: Снова перезапустите Eclipse, затем решите эту проблему.


Для тех, кто использует OS X

killall adb

Для тех, кто использует Windows

adb kill-server

должен сделать свое дело.

Horrorgoogle
источник
40

Я столкнулся с той же проблемой, хотя не знал, что вызвало это. Как бы то ни было, я нашел некоторые подсказки и наконец исправил.

Когда я открываю SDK и диспетчер AVD, но обнаруживаю, что версия AVD (2.3.3) не совпадает с версией Android lib (2.3). Поэтому я создаю новый AVD с 2.3.

Я исправил это, выполнив следующие действия: 1. Откройте диспетчер задач Windows и завершите процесс adb.exe. 2. Закройте затмение и перезапустите его. Тогда это работает.

Надеюсь, поможет.

Jowett
источник
35

Эти симптомы возникают, если вы используете эмулятор Genymotion (в Windows или Linux) одновременно с Android Studio:

adb server is out of date.  killing...
ADB server didn't ACK
* failed to start daemon *

Genymotion включает в себя свою собственную копию adb, которая мешает той, которая входит в комплект Android SDK.

Кажется, самый простой способ исправить это обновить настройки Genymotion, чтобы он использовал тот же ADB, что и ваш Android SDK:

настройки ADB genymotion

Просто установите флажок «Использовать пользовательские инструменты Android SDK» и введите желаемое местоположение.

Дэн Дж
источник
У меня работает после обновления Android Studio до 2.1.2.
Ноэль Баутиста
35

АБР часто терпит неудачу, если есть новая строка в adb_usb.ini. Удалите его, перезапустите, и это часто решит проблему (по крайней мере, для меня в любом случае).

FishGuy876
источник
при попытке отладки с помощью Kindle Fire хотел сделать запись в этом файле ~ / .android / adb_usb.ini, но по незнанию добавил несколько лишних пустых строк. Сейчас убрал его. исправился, спасибо.
Тиру
35

Командная строка (cmd.exe):

netstat -aon | findstr 5037

Найдите идентификатор процесса 0.0.0.0:

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

Убедитесь, что это adb.exe:

tasklist | findstr 1980

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

Убей этот процесс:

taskkill /f /t /im adb.exe

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

Верните АБР в нормальное состояние:

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

Предоставлено: сообщение в блоге * Сервер Android ADB не смог ACK запустить демона *

Mia
источник
Моя сторона tfadb.exe, после того, как убить его, он работает, спасибо.
BobGao
В моем случае svchost.exe использовал этот порт. После убийства все началось успешно.
ranka47
13

Если вы используете приложение синхронизации для устройства, это также может быть связано с тем, что другие приложения используют тот же 5037порт. Завершите работу всех служб, работающих в порту5037 и попробуйте запустить ADB.

Чтобы проверить, использует ли какое-либо приложение порт 5037, используйте это:

netstat -a -n -o |findstr "5037"

Получить PID приложения.

Используйте Process Explorer, чтобы найти процесс и выйти из него.

Теперь используйте adb start-serverили adb get-stateдля запуска / проверки состояния сервера ADB.

Я столкнулся с проблемой, когда использовал приложение Snappea / Wandoujia Sync.

Прадип Чакраварти Гудипати
источник
Спасибо! svchost.exe неожиданно использовал этот порт.
Джейкоб Л
Я не знаю, когда это будет исправлено, но стыдно еще не исправлять.
Деян
8

Я вызвал эту проблему, введя дополнительную пустую строку в конце ~ / .android / adb_usb.ini

(Удаление лишней пустой строки решило проблему)

мр
источник
Исправьте подобную проблему, удалив все пустые строки, а не только последнюю.
Павел
2
У меня была та же проблема, потому что я добавил одну пустую строку в конце при входе в линии Kindle Fire. Я удалил пустую строку и adb перезапустился без проблем. Спасибо.
Джером Мунейрак
7

Мы можем решить эту проблему так легко.

  1. Откройте командную строку и выполните cd <platform-tools directory>
  2. Команда выполнения adb kill-server
  3. Откройте диспетчер задач Windows и проверьте, adbработает ли он по-прежнему. Если это так, просто убейadb.exe
  4. Запустите команду adb start-serverв командной строке

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

Манеш Аппукуттан
источник
Не нужно перезапускать Eclipse! :)
TWiStErRob
5

Я решил свой первый вопрос: откройте Eclipse, откройте SDK Manager и выберите устройство для открытия.

Или вы можете открыть каталог SDK. Откройте диспетчер SDK, а затем выберите устройство для открытия

2: Закройте Eclipse, а затем откройте его.

pengwang
источник
5

Убедитесь, что отладка по USB на вашем телефоне включена. ADB kill-server и ADB start-server не являются проблемой.

C:\Documents and Settings\Administrator> adb nodaemon server

 - cannot bind 'tcp:5037'

C:\Documents and Settings\Administrator> netstat -aon | findstr "5037"

 - TCP 127.0.0.1:1130 127.0.0.1:5037 TIME_WAIT 0
 - TCP 127.0.0.1:1269 127.0.0.1:5037 TIME_WAIT 0
 - TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3088
 - TCP 127.0.0.1:5037 127.0.0.1:1128 TIME_WAIT 0
 - TCP 127.0.0.1:5037 127.0.0.1:1129 TIME_WAIT 0
 - TCP 127.0.0.1:5037 127.0.0.1:1270 TIME_WAIT 0

C:\Documents and Settings\Administrator>tasklist -fi "pid eq 3088"

 - Image name PID session name session # memory usage

========================= ====== ================ === ===== ============

 - adb.exe 3088 Console 0 3,816 K

C:\Documents and Settings\Administrator>taskkill /f /pid 3088

 - Success: terminate the PID for the process of 3,088.

C:\Documents and Settings\Administrator>adb start-server

 - daemon not running. starting it now on port 5037 *
 - daemon started successfully *
Albert.Qing
источник
4

Я уже проголосовал за другой ответ здесь на этот вопрос, но на случай, если кому-то интересно, вам не нужно перезапускать Eclipse, чтобы снова запустить ADB. Просто откройте оболочку и выполните команду:

adb start-server

Если вы не указали путь к ADB в свойствах вашей системы, то сначала вы должны перейти в каталог, в котором существует ADB (в Android \ android-sdk \ platform-tools .... У меня работает Windows, я не не знаю, как маки люди делают вещи).

dell116
источник
2
Это не имеет значения. Я также получаю сообщение об ошибке из командной строки.
Игорь Ганапольский
Я не нашел способ сделать это на Mac. Принудительный выход из ADB не помог, поэтому мне пришлось перезагрузить весь компьютер. Тогда это снова сработало.
Марсель Бро
2

Перейдите на sysinternals.com и выберите TCPVIEW и PROCESS EXPLORER, если они еще не установлены.

По какой-то причине демон ADB завершает работу до завершения обмена сокетами закрытия. Если вы запустите (из командной строки) «NETSTAT -o», вы увидите сокет (обычно 5037) в состоянии CLOSE_WAIT и номер процесса-владельца. Process Explorer не будет отображать этот идентификатор процесса (демон завершен), и процесс с именем adb.exe (который открыл сокет) будет удален. (Если adb.exe, если найден, попробуйте убить задачу и посмотреть, все ли почищено.)

Используя TCPVIEW, найдите зависший сокет. Столбец с именем процесса покажет, что связанный процесс не может быть найден. Щелкните правой кнопкой мыши и выберите «Закрыть соединение». Сокет теперь закрыт, и демон adb должен быть в состоянии запустить.

HiTechHiTouch
источник
Полезно. Кроме того, в Process Explorer, если вы видите adb.exe, запущенный со столбцом Path, показывающим [Ошибка открытия процесса], это может быть вероятной причиной.
Самик Р
2

У меня была похожая проблема. Уничтожение существующего экземпляра процесса ADB из диспетчера задач не работает для меня.

Всего несколько дней назад я пытался установить MIPS SDK и ADT-17 ранее, и Eclipse дал мне ошибку, и я не исправил эту проблему.

Итак, теперь, когда я получил, что этот сервер ADB не получил ACK, не смог запустить демон ... проблема, я выполнил «Проверка обновлений» в Справке Eclipse пункте меню « . Обновлений не было, но по крайней мере ошибка «ADB server not ACK» исчезла.

Я надеюсь, что это может помочь в нескольких случаях.

Chand51
источник
1

Тип ./adb nodaemon server в терминале.

Если он вернется Invalid content in adb_usb.ini, значит, проблема с вашим adb_usb.iniфайлом в.android папке.

Откройте adb_usb.iniи удалите его содержимое. Затем перезагрузите сервер ... у меня все заработало.

aashishdhawan
источник
1

Проверьте путь к каталогу Android. Он не должен содержать пробелов и т. Д.

Также проверьте, правильно ли настроен плагин в Eclipse → Preferences .

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

Проверьте свой антивирус. Это может быть блокировка портовadb.exe или программ эмулятора и т. Д. Это решило проблему в моем случае.

user1372837
источник
1

В дополнение к @Bastet :

На самом деле мы должны убить процесс, используя адрес 0.0.0.0:0. Вот почему для большинства людей убиваютadb.exe из диспетчера задач работало (в моем случае я не смог увидеть его даже в диспетчере задач).

Следуя шагам @Bastet , я обнаружил, что какой-то другой процесс использовал этот адрес. Я пошел вперед, чтобы убить его, и это дало мне ACCESS DENIEDкак Error.

Так что с помощью tasklist | findstr ****я узнал название процесса и убил его из диспетчера задач.

После этого он начал работать.

В моем случае bas_daemonи bas_helperиспользовали этот адрес, оба из которых соответствуют MOBOROBO .

DeltaCap019
источник
0

У меня такая же проблема. Но adbна моем ноутбуке не было никакого процесса . Я просто выхожу и захожу в свою учетную запись, и это решается ...

АБР может начать с окон CMD после этого.

Chuck.Zhou
источник
0

Лучший и самый эффективный способ без перезапуска любого устройства или программного обеспечения:

Запустите следующее:

adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe

И еще одна вещь ... АБР является самостоятельной вещью. Вы не можете ничего делать до тех пор, пока оно не захочет работать. Есть еще один способ, который я обнаружил: оставьте устройство подключенным на 5-6 минут и подождите. Вскоре устройство подключается и пытается запустить.

Веер Шривастав
источник
0

Это не началось для меня, пока я не рутировал свой телефон Samsung Galaxy S III (следуя руководству по форуму xda-developer).

Это происходит довольно случайно, но это определенно происходит во время работы Eclipse.

Уничтожение процесса adb.exe и его перезапуск решает проблему.

Натан Перье
источник
0

Посмотрите на антивирус или брандмауэр ... Блокирует ли что-то из этого доступ ... В антивирусе k7 я отключил системный монитор, и он работает для меня ...

Sha Beer
источник
-1

Мне пришлось разрешить adb.exe доступ к моей сети в моем брандмауэре.

Тер
источник
1
Я использую этот брандмауэр: sphinx-soft.com/de/Vista/order.html Все , что я сделал изменял правило adb.exe кallow all
Тер
-1

Убить Затмение и перезагрузить компьютер мне не помогло. Я добавил инструмент Android в переменные PATH, запустил диспетчер задач и убил adb.exe.

Я перезапустил Eclipse, и тогда это сработало.

Кристи валлийский
источник