Błąd Eclipse „Serwer ADB nie ACK, nie udało się uruchomić demona”

158

Po zaktualizowaniu SDK Eclipse pokazuje ten błąd:

Serwer ADB nie potwierdził, nie udało się uruchomić demona.

Kiedy uruchamiam aplikację na Androida, daje mi ona następujące informacje:

Upewnij się, że adb jest poprawnie umieszczony w „D: \ android-sdk-windows \ platform-tools \ adb.exe” i może zostać uruchomiony.

Jak mogę rozwiązać ten problem?

pengwang
źródło
niedawno zainstalowałem genymotion, a potem zaczęło się dziać, rozwiązaniem było ręczne usunięcie polecenia adb z terminala i ustawienie ścieżki adb w zmiennych środowiskowych w ubantu wskazujących na sdk / platform-tools, a następnie zadziałało.
vikas kumar

Odpowiedzi:

263

Dzięki, @jowett , rozwiązałem ten sam problem, wykonując te czynności

Krok 1: CTRL + Shift+, Escaby otworzyć menedżera zadań, który ma proces adb.exe i zakończyć (zabić) ten proces

Krok 2: Teraz zamknij zaćmienie, które obecnie działa na moim komputerze.

Krok 3: Ponownie uruchom ponownie zaćmienie, a następnie rozwiąż ten problem.


Dla osób używających OS X

killall adb

Dla osób korzystających z systemu Windows

adb kill-server

powinien załatwić sprawę.

Horrorgoogle
źródło
40

Napotkałem ten sam problem, chociaż nie wiem, co go spowodowało. Cokolwiek, znajduję wskazówki i ostatecznie naprawiłem.

Kiedy otwieram menedżera SDK i AVD, ale stwierdzam, że wersja AVD (2.3.3) nie jest taka sama z wersją lib android (2.3). Więc tworzę nowy AVD z 2.3.

Naprawiłem to, wykonując następujące kroki: 1. Otwórz menedżera zadań systemu Windows i zakończ proces adb.exe. 2. Zamknij zaćmienie i uruchom je ponownie. Wtedy to działa.

Mam nadzieję, że to pomoże.

jowett
źródło
35

Te symptomy występują, jeśli używasz emulatora Genymotion (w systemie Windows lub Linux) w tym samym czasie co Android Studio:

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

Genymotion zawiera własną kopię programu adb, która koliduje z tą zawartą w pakiecie Android SDK.

Najłatwiejszym sposobem na naprawienie wydaje się być aktualizacja ustawień Genymotion, aby używała tego samego ADB, co Twój Android SDK:

ustawienia genymotion ADB

Po prostu zaznacz opcję „Użyj niestandardowych narzędzi Android SDK” i wprowadź żądaną lokalizację.

Dan J
źródło
U mnie działa po aktualizacji Android Studio do 2.1.2.
Noel Bautista
35

ADB często zawiedzie, jeśli pojawi się nowa linia adb_usb.ini. Usuń go, uruchom ponownie, a to często rozwiąże problem (przynajmniej dla mnie).

FishGuy876
źródło
podczas próby debugowania za pomocą Kindle Fire chciałem wprowadzić wpis w tym pliku ~ / .android / adb_usb.ini, ale nieświadomie dodał kilka dodatkowych pustych wierszy. Teraz go usunąłem. zostało naprawione, dzięki.
Czw,
35

Wiersz polecenia (cmd.exe):

netstat -aon | findstr 5037

Znajdź identyfikator procesu 0.0.0.0:

Tutaj wprowadź opis obrazu

Upewnij się, że jest to adb.exe:

tasklist | findstr 1980

Tutaj wprowadź opis obrazu

Zabij ten proces:

taskkill /f /t /im adb.exe

Tutaj wprowadź opis obrazu

Przywróć ADB do normy:

Tutaj wprowadź opis obrazu

Kredyt: post na blogu * Serwer Android ADB nie ACK nie uruchomił demona *

Mia
źródło
Moja strona to tfadb.exe, po zabiciu działa, dziękuję.
BobGao
W moim przypadku port był używany przez svchost.exe. Po zabiciu zaczęło się pomyślnie.
ranka47
13

Jeśli używasz aplikacji do synchronizacji urządzenia, może to być również spowodowane tym, że inne aplikacje używają tego samego 5037portu. Zamknij wszystkie usługi działające na porcie 5037i spróbuj uruchomić ADB.

Aby sprawdzić, czy jakakolwiek aplikacja korzysta z portu 5037, użyj tego:

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

Uzyskaj PID aplikacji.

Użyj Process Explorer, aby znaleźć proces i go zamknąć.

Teraz użyj adb start-serverlub, adb get-stateaby uruchomić / sprawdzić stan serwera ADB.

Napotkałem problem, gdy korzystałem z aplikacji Snappea / Wandoujia Sync.

Pradeep Chakravarti Gudipati
źródło
Dzięki! svchost.exe nagle z jakiegoś powodu używał tego portu.
Jacob L,
Nie wiem, kiedy to zostanie naprawione, ale szkoda, że ​​tego jeszcze nie naprawiono.
Dejan
8

Zrobiłem ten problem, wprowadzając dodatkową pustą linię na końcu ~ / .android / adb_usb.ini

(Usunięcie dodatkowej pustej linii rozwiązało problem)

nmr
źródło
Rozwiąż podobny problem, usuwając wszystkie puste wiersze, a nie tylko ostatnią.
Pavel
2
Miałem ten sam problem, ponieważ dodałem jedną pustą linię na końcu podczas wchodzenia w linie Kindle Fire. Usunąłem pustą linię i adb uruchomił się ponownie bez problemu. Dzięki.
Jerome Mouneyrac
7

Tak łatwo możemy rozwiązać ten problem.

  1. Otwórz wiersz polecenia i zrób cd <platform-tools directory>
  2. Uruchom polecenie adb kill-server
  3. Otwórz Menedżera zadań systemu Windows i sprawdź, czy adbnadal działa. Jeśli tak, po prostu zabijadb.exe
  4. Uruchom polecenie adb start-serverw wierszu polecenia

Tutaj wprowadź opis obrazu

Manesh Appukuttan
źródło
Nie ma potrzeby ponownego uruchamiania Eclipse! :)
TWiStErRob
5

Rozwiązałem swoje pierwsze pytanie: Otwórz Eclipse, otwórz Menedżera SDK i wybierz urządzenie do otwarcia.

Lub możesz otworzyć katalog SDK. Otwórz Menedżera SDK, a następnie wybierz urządzenie do otwarcia

2: Zamknij Eclipse, a następnie otwórz go.

pengwang
źródło
5

Upewnij się, że debugowanie USB w telefonie jest włączone. Serwer zabijania ADB i serwer startowy ADB nie stanowią problemu.

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
źródło
4

Głosowałem już pozytywnie na inną odpowiedź na to pytanie, ale na wypadek, gdyby ktoś się zastanawiał, nie musisz ponownie uruchamiać Eclipse, aby ponownie uruchomić ADB. Po prostu otwórz powłokę i uruchom polecenie:

adb start-server

Jeśli nie ustawiłeś ścieżki do ADB we właściwościach systemu, musisz najpierw przejść do katalogu, w którym istnieje ADB (w systemie Android \ android-sdk \ platform-tools .... Używam systemu Windows, nie robię tego wiem, jak ludzie Mac robią różne rzeczy).

dell116
źródło
2
To nie ma znaczenia. Otrzymuję błąd również z linii poleceń.
IgorGanapolsky
Nie znalazłem sposobu, jak to zrobić na Macu. Wymuszenie wyjścia z ADB nie pomogło, więc musiałem ponownie uruchomić cały komputer. Potem znowu zadziałało.
Marcel Bro
2

Podbiegnij do sysinternals.com i podnieś TCPVIEW i PROCESS EXPLORER, jeśli nie masz ich jeszcze zainstalowanych.

Z jakiegoś powodu demon ADB kończy działanie przed zakończeniem wymiany zamkniętych gniazd. Jeśli uruchomisz (z wiersza poleceń) "NETSTAT -o", zobaczysz gniazdo (zwykle 5037) w stanie CLOSE_WAIT i numer procesu będącego właścicielem. Process Explorer nie pokaże tego identyfikatora procesu (działanie demona), a proces o nazwie adb.exe (który otworzył gniazdo) zniknie. (Jeśli zostanie znaleziony adb.exe, spróbuj zabić zadanie i zobacz, czy wszystko zostanie wyczyszczone).

Korzystając z TCPVIEW, zlokalizuj zawieszone gniazdo. Kolumna nazwy procesu pokaże, że nie można znaleźć powiązanego procesu. Kliknij prawym przyciskiem myszy i wybierz „Zamknij połączenie”. Gniazdo jest teraz zamknięte, a demon adb powinien móc się uruchomić.

HiTechHiTouch
źródło
Pomocny. Ponadto, jeśli w Eksploratorze procesów zobaczysz uruchomiony plik adb.exe z kolumną Ścieżka wyświetlającą komunikat [Błąd podczas otwierania procesu], może to być prawdopodobną przyczyną.
Samik R
2

Miałem podobny problem. Zabicie istniejącej instancji procesu ADB z Menedżera zadań nie działa dla mnie.

Zaledwie kilka dni temu próbowałem wcześniej zainstalować MIPS SDK i ADT-17, a Eclipse podało mi błąd, ale nie naprawiłem tego problemu.

Więc teraz, kiedy otrzymałem ten serwer ADB, nie ACK, nie udało się uruchomić problemu z demonem ... , wykonałem 'Sprawdź aktualizacje' w Pomocy Eclipse elemencie menu . Nie było dostępnych aktualizacji, ale przynajmniej błąd „ADB server not ACK” zniknął.

Mam nadzieję, że może to pomóc w kilku przypadkach.

Chand51
źródło
1

Wpisz ./adb nodaemon serverterminal.

Jeśli zwróci Invalid content in adb_usb.ini, wystąpił problem z adb_usb.iniplikiem w .androidfolderze.

Otwórz adb_usb.inii usuń jego zawartość. Następnie zrestartuj serwer ... zadziałało dla mnie.

aashishdhawan
źródło
1

Sprawdź ścieżkę do katalogu Androida. Nie powinien zawierać spacji itp.

Sprawdź również, czy wtyczka została poprawnie skonfigurowana w Eclipse → Preferencje .

W moim przypadku wszystko sprawdzałem wielokrotnie, ale nadal nie działało. Miałem już wszystko przeinstalować, ale znalazłem odpowiedź na tej stronie (inny post).

Sprawdź swój program antywirusowy. Może to być blokowanie portów adb.exelub programów emulatorów itp. To rozwiązało problem w moim przypadku.

user1372837
źródło
1

Oprócz rozwiązania @Bastet :

Właściwie musimy zabić proces używając adresu 0.0.0.0:0. Dlatego większość ludzi zabijaadb.exe z Menedżera zadań działało (w moim przypadku nie mogłem tego zobaczyć nawet w Menedżerze zadań).

Po wykonaniu kroków @Bastet dowiedziałem się, że inny proces używa tego adresu. Poszedłem do przodu, aby go zabić, a on dał mi ACCESS DENIEDjak Error.

Używając narzędzia tasklist | findstr ****, znalazłem nazwę procesu i zabiłem go z Menedżera zadań.

Potem zaczęło działać.

W moim przypadku bas_daemoni bas_helperkorzystałem z tego adresu, z których oba odpowiadają MOBOROBO .

DeltaCap019
źródło
0

Miałem ten sam problem. Ale adbna moim laptopie nie było procesu . Po prostu wylogowuję się i loguję na swoje konto, a problem został rozwiązany ...

Po tym ADB może zacząć od okien CMD.

Chuck.Zhou
źródło
0

Najlepszym i najbardziej wydajnym sposobem bez ponownego uruchamiania żadnego urządzenia lub oprogramowania jest:

Uruchom następujące:

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

I jeszcze jedno… ADB to rzecz samodzielna. Nie możesz nic zrobić, dopóki nie zechce działać. Odkryłem jeszcze jeden sposób: pozostaw urządzenie podłączone na 5-6 minut i poczekaj. Wkrótce urządzenie łączy się i próbuje się uruchomić.

Veer Shrivastav
źródło
0

To nie zaczęło się u mnie, dopóki nie zrootowałem mojego telefonu Samsung Galaxy S III (postępując zgodnie z przewodnikiem na forum xda-developer).

Dzieje się to dość przypadkowo, ale na pewno występuje podczas uruchamiania Eclipse.

Zabicie procesu adb.exe i ponowne uruchomienie go rozwiązuje problem.

Nathan Perrier
źródło
0

Spójrz na program antywirusowy lub zaporę ogniową ... Czy coś z tego blokuje ci dostęp ... W programie antywirusowym k7 wyłączyłem monitor systemu i działa dla mnie ...

Sha Beer
źródło
-1

Zabicie Eclipse, a następnie ponowne uruchomienie nie pomogło mi. Dodałem narzędzie Android do zmiennych PATH, uruchomiłem Menedżera zadań i zabiłem adb.exe.

Ponownie uruchomiłem Eclipse, a potem zadziałało.

Kristy Welsh
źródło