Eclipse-Fehler "ADB-Server hat nicht bestätigt, Daemon konnte nicht gestartet werden"

158

Nach dem Aktualisieren des SDK zeigt Eclipse diesen Fehler an:

Der ADB-Server hat nicht bestätigt, der Daemon konnte nicht gestartet werden.

Wenn ich eine Android-Anwendung ausführe, habe ich Folgendes:

Stellen Sie sicher, dass sich adb korrekt unter 'D: \ android-sdk-windows \ platform-tools \ adb.exe' befindet und ausgeführt werden kann.

Wie kann ich dieses Problem beheben?

Pengwang
quelle
erst kürzlich wurde die genymotion installiert und danach begann die lösung darin, den adb-befehl manuell vom terminal zu entfernen und den adb-pfad in umgebungsvariablen in ubantu zu setzen, der auf sdk / platform-tools verweist, und dann funktionierte es.
Vikas Kumar

Antworten:

263

Danke, @jowett , ich habe das gleiche Problem gelöst und diese Schritte ausgeführt

Schritt 1: CTRL + Shift+ Esc, um den Task-Manager mit dem Prozess adb.exe zu öffnen und diesen Prozess zu beenden (zu beenden)

Schritt 2: Schließen Sie nun die Eclipse, die derzeit auf meinem Computer ausgeführt wird.

Schritt 3: Starten Sie Eclipse erneut und lösen Sie das Problem.


Für diejenigen, die OS X verwenden

killall adb

Für diejenigen, die Windows verwenden

adb kill-server

sollte den Trick machen.

Horrorgoogle
quelle
40

Ich bin auf dasselbe Problem gestoßen, obwohl ich nicht wusste, was dies verursacht hat. Wie auch immer, ich finde einige Hinweise und habe sie endlich behoben.

Wenn ich SDK und AVD Manager öffne, aber finde, dass die AVD-Version (2.3.3) nicht mit der Android Lib-Version (2.3) identisch ist. Also erstelle ich eine neue AVD mit 2.3.

Ich habe es durch die folgenden Schritte behoben: 1. Öffnen Sie den Windows Task-Manager und beenden Sie den Prozess adb.exe. 2. Schließen Sie Eclipse und starten Sie es neu. Dann funktioniert es.

Ich hoffe es hilft.

Jowett
quelle
35

Diese Symptome treten auf, wenn Sie den Genymotion-Emulator (unter Windows oder Linux) gleichzeitig mit Android Studio verwenden:

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

Genymotion enthält eine eigene Kopie von adb , die die im Android SDK enthaltene stört.

Der einfachste Weg, dies zu beheben, scheint darin zu bestehen, Ihre Genymotion-Einstellungen so zu aktualisieren, dass dieselbe ADB wie für Ihr Android SDK verwendet wird:

Genymotion ADB-Einstellungen

Aktivieren Sie einfach die Option "Benutzerdefinierte Android SDK-Tools verwenden" und geben Sie den gewünschten Speicherort ein.

Dan J.
quelle
Funktioniert für mich nach dem Update von Android Studio auf 2.1.2.
Noel Bautista
35

ADB schlägt häufig fehl, wenn eine neue Zeile vorhanden ist adb_usb.ini. Entfernen Sie es, starten Sie es neu, und das wird das Problem oft lösen (zumindest für mich sowieso).

FishGuy876
quelle
Beim Versuch, mit Kindle Fire zu debuggen, wollte ich einen Eintrag in dieser Datei ~ / .android / adb_usb.ini machen, fügte aber unwissentlich einige zusätzliche Leerzeilen hinzu. Jetzt entfernte es. wurde repariert, danke.
Thiru
35

Eingabeaufforderung (cmd.exe):

netstat -aon | findstr 5037

Suchen Sie die Prozess-ID von 0.0.0.0:

Geben Sie hier die Bildbeschreibung ein

Stellen Sie sicher, dass es adb.exe ist:

tasklist | findstr 1980

Geben Sie hier die Bildbeschreibung ein

Töte diesen Prozess:

taskkill /f /t /im adb.exe

Geben Sie hier die Bildbeschreibung ein

Holen Sie sich ADB wieder normal:

Geben Sie hier die Bildbeschreibung ein

Bildnachweis: Blogbeitrag * Android ADB-Server hat ACK den Daemon nicht gestartet *

Mia
quelle
Meine Seite ist tfadb.exe, nachdem ich es getötet habe, funktioniert es, danke.
BobGao
In meinem Fall hat svchost.exe den Port verwendet. Nachdem es getötet wurde, startete es erfolgreich.
ranka47
13

Wenn Sie eine Synchronisierungsanwendung für das Gerät verwenden, kann dies auch daran liegen, dass andere Apps denselben 5037Port verwenden. Fahren Sie alle auf dem Port ausgeführten Dienste herunter5037 und versuchen Sie, ADB zu starten.

Verwenden Sie Folgendes, um zu überprüfen, ob eine Anwendung Port 5037 verwendet:

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

Holen Sie sich die PID der Anwendung.

Verwenden Sie den Prozess-Explorer , um den Prozess zu finden und zu beenden.

Verwenden Sie jetzt adb start-serveroder adb get-state, um den ADB-Serverstatus zu starten / zu überprüfen.

Ich hatte das Problem, als ich die Snappea / Wandoujia Sync-Anwendung verwendete.

Pradeep Chakravarti Gudipati
quelle
Vielen Dank! svchost.exe benutzte diesen Port aus irgendeinem Grund plötzlich.
Jacob L
Ich weiß nicht, wann dies behoben wird, aber es ist eine Schande, noch nicht behoben zu werden.
Dejan
8

Ich habe dieses Problem verursacht, indem ich am Ende von ~ / .android / adb_usb.ini eine zusätzliche Leerzeile eingegeben habe

(Das Entfernen der zusätzlichen Leerzeile hat das Problem behoben.)

nmr
quelle
Beheben Sie ein ähnliches Problem, indem Sie alle Leerzeilen entfernen, nicht nur die letzte.
Pavel
2
Ich hatte das gleiche Problem, weil ich beim Eingeben der Kindle Fire-Zeilen am Ende eine leere Zeile hinzugefügt habe. Ich habe die leere Zeile entfernt und adb ohne Probleme neu gestartet. Vielen Dank.
Jerome Mouneyrac
7

Wir können dieses Problem so einfach lösen.

  1. Öffnen Sie eine Eingabeaufforderung und tun Sie dies cd <platform-tools directory>
  2. Führen Sie den Befehl aus adb kill-server
  3. Öffnen Sie den Windows Task-Manager und prüfen Sie, ob adb noch ausgeführt wird. Wenn ja, töte einfachadb.exe
  4. Führen Sie den Befehl adb start-serveran der Eingabeaufforderung aus

Geben Sie hier die Bildbeschreibung ein

Manesh Appukuttan
quelle
Eclipse muss nicht neu gestartet werden! :)
TWiStErRob
5

Ich habe meine erste Frage gelöst: Öffnen Sie Eclipse, öffnen Sie den SDK-Manager und wählen Sie das zu öffnende Gerät aus.

Oder Sie können das SDK-Verzeichnis öffnen. Öffnen Sie den SDK-Manager und wählen Sie das zu öffnende Gerät aus

2: Schließen Sie Eclipse und öffnen Sie es.

Pengwang
quelle
5

Stellen Sie sicher, dass das USB-Debugging auf Ihrem Telefon aktiviert ist. ADB Kill-Server und ADB Start-Server ist nicht das Problem.

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
quelle
4

Ich habe hier bereits eine andere Antwort auf diese Frage hochgestimmt, aber für den Fall, dass sich jemand wundert, müssen Sie Eclipse nicht neu starten, um ADB wieder zum Laufen zu bringen. Öffnen Sie einfach eine Shell und führen Sie den folgenden Befehl aus:

adb start-server

Wenn Sie den Pfad zu ADB in Ihren Systemeigenschaften nicht festgelegt haben, müssen Sie zuerst in das Verzeichnis wechseln, in dem ADB vorhanden ist (in Android \ android-sdk \ platform-tools .... Ich verwende Windows, ich nicht ' Ich weiß nicht, wie die Mac-Leute Dinge tun.

dell116
quelle
2
Das ist egal. Ich erhalte den Fehler auch über die Befehlszeile.
IgorGanapolsky
Ich habe keinen Weg gefunden, wie es auf dem Mac geht. Das erzwungene Beenden von ADB hat nicht geholfen, daher musste ich den gesamten Computer neu starten. Dann hat es wieder geklappt.
Marcel Bro
2

Gehen Sie zu sysinternals.com und holen Sie sich TCPVIEW und PROCESS EXPLORER, falls Sie diese noch nicht installiert haben.

Aus irgendeinem Grund wird der ADB-Dämon beendet, bevor der Austausch des geschlossenen Sockets abgeschlossen ist. Wenn Sie (an der Eingabeaufforderung) "NETSTAT -o" ausführen, sehen Sie den Socket (im Allgemeinen 5037) im Status CLOSE_WAIT und die Nummer des Besitzprozesses. Der Prozess-Explorer zeigt diese Prozess-ID (der Dämon wurde beendet) nicht an, und der Prozess mit dem Namen adb.exe (der den Socket geöffnet hat) ist nicht mehr vorhanden. (Wenn adb.exe gefunden wird, versuchen Sie, die Aufgabe zu beenden, und prüfen Sie, ob die Dinge bereinigt werden.)

Suchen Sie mit TCPVIEW den blockierten Socket. In der Spalte Prozessname wird angezeigt, dass der zugehörige Prozess nicht gefunden wurde. Klicken Sie mit der rechten Maustaste und wählen Sie "Verbindung schließen". Der Socket ist jetzt geschlossen und der ADB-Daemon sollte starten können.

HiTechHiTouch
quelle
Hilfreich. Wenn im Prozess-Explorer eine adb.exe mit der Spalte "Pfad" angezeigt wird, in der [Fehler beim Öffnen des Vorgangs] angezeigt wird, kann dies der wahrscheinliche Schuldige sein.
Samik R
2

Ich hatte ein ähnliches Problem. Das Beenden einer vorhandenen Instanz des ADB-Prozesses über den Task-Manager hat bei mir nicht funktioniert.

Vor ein paar Tagen hatte ich zuvor versucht, MIPS SDK und ADT-17 zu installieren, und Eclipse gab mir den Fehler, und ich konnte dieses Problem nicht beheben.

Als ich nun bekam, dass dieser ADB-Server nicht ACK-fähig war und das Daemon- Problem nicht starten konnte , führte ich in der Eclipse- Hilfe "Nach Updates suchen" aus Option Nach suchen aus. Es waren keine Updates verfügbar, aber der Fehler "ADB-Server hat nicht bestätigt" ist verschwunden.

Ich hoffe, dass dies in einigen Fällen helfen kann.

Chand51
quelle
1

Geben Sie ./adb nodaemon serverein Terminal ein.

Wenn es zurückkehrt Invalid content in adb_usb.ini, liegt ein Problem mit Ihrer adb_usb.iniDatei im .androidOrdner vor.

Öffnen adb_usb.iniund löschen Sie den Inhalt. Dann starten Sie den Server neu ... es hat bei mir funktioniert.

aashishdhawan
quelle
1

Überprüfen Sie den Pfad des Android-Verzeichnisses. Es sollte keine Leerzeichen usw. enthalten.

Überprüfen Sie auch, ob das Plugin unter Eclipse → Einstellungen richtig konfiguriert wurde .

In meinem Fall ließ ich alles mehrmals überprüfen, aber es funktionierte immer noch nicht. Ich wollte gerade alles neu installieren, fand aber auf dieser Seite eine Antwort (ein anderer Beitrag).

Überprüfen Sie Ihr Antivirenprogramm. Möglicherweise werden die Ports adb.exeoder Emulatorprogramme usw. blockiert. Dies hat das Problem in meinem Fall gelöst.

user1372837
quelle
1

Zusätzlich zur Lösung von @Bastet :

Eigentlich müssen wir den Prozess mit der Adresse beenden 0.0.0.0:0. Das ist der Grund, warum für die meisten Leute, die adb.exevom Task-Manager getötet wurden, gearbeitet wurde (in meinem Fall konnte ich es nicht einmal im Task-Manager sehen).

Nach den @ Bastet- Schritten stellte ich fest, dass ein anderer Prozess diese Adresse verwendete. Ich ging voran, um es zu töten, und es gab mir ACCESS DENIEDalsError .

Mit dem habe tasklist | findstr ****ich den Namen des Prozesses herausgefunden und ihn im Task-Manager beendet.

Danach fing es an zu arbeiten.

In meinem Fall bas_daemonund bas_helpermit dieser Adresse entsprechen beide MOBOROBO .

DeltaCap019
quelle
0

Ich hatte das gleiche Problem. Aber es gab keinen Prozess vonadb auf meinem Laptop . Ich melde mich einfach ab und wieder in meinem Konto an und es ist behoben ...

Danach könnte ADB aus CMD-Fenstern starten.

Chuck.Zhou
quelle
0

Der beste und effizienteste Weg, ohne ein Gerät oder eine Software neu zu starten, ist:

Führen Sie Folgendes aus:

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

Und noch etwas. ADB ist eine eigenständige Sache. Sie können nichts tun, bis es nicht funktioniert. Ich habe noch einen weiteren Weg herausgefunden: Lassen Sie das Gerät 5-6 Minuten lang angeschlossen und warten Sie. Bald wird das Gerät verbunden und versucht zu starten.

Veer Shrivastav
quelle
0

Dies begann für mich erst, als ich mein Samsung Galaxy S III- Telefon gerootet hatte (gemäß der Anleitung im xda-Entwicklerforum).

Es passiert ziemlich zufällig, aber es tritt definitiv auf, während Eclipse ausgeführt wird.

Wenn Sie den Prozess adb.exe beenden und neu starten, wird das Problem behoben.

Nathan Perrier
quelle
0

Schauen Sie sich das Antivirus oder die Firewall an ... Blockiert Sie irgendetwas davon den Zugriff ... In k7 Antivirus habe ich den Systemmonitor ausgeschaltet und es funktioniert für mich ...

Sha Beer
quelle
-1

Eclipse zu töten und dann neu zu starten hat mir nicht geholfen. Ich habe das Android-Tool zu den PATH-Variablen hinzugefügt, den Task-Manager gestartet und adb.exe beendet.

Ich habe Eclipse neu gestartet und dann hat es funktioniert.

Kristy Welsh
quelle