Erreur Eclipse "Le serveur ADB n'a pas ACK, n'a pas pu démarrer le démon"


158

Après la mise à jour du SDK, Eclipse affiche cette erreur:

Le serveur ADB n'a pas ACK, n'a pas pu démarrer le démon.

Lorsque je lance une application Android, cela me donne ce qui suit:

Veuillez vous assurer que adb est correctement situé dans 'D: \ android-sdk-windows \ platform-tools \ adb.exe' et peut être exécuté.

Comment puis-je résoudre ce problème?


tout récemment installé le genymotion et après cela, la solution a été de supprimer manuellement la commande adb du terminal et de définir le chemin adb dans les variables d'environnement dans ubantu pointant vers sdk / platform-tools, puis cela a fonctionné.
vikas kumar

Réponses:


263

Merci, @jowett , j'ai résolu mon même problème en suivant ces étapes

Étape 1: CTRL + Shift+Esc pour ouvrir le gestionnaire de tâches, qui a le processus adb.exe et terminer (tuer) ce processus

Étape 2: Maintenant, fermez l'éclipse, qui est actuellement en cours d'exécution sur mon ordinateur.

Étape 3: Encore une fois, redémarrez eclipse puis résolvez ce problème.


Pour ceux qui utilisent OS X

killall adb

Pour ceux qui utilisent Windows

adb kill-server

devrait faire l'affaire.


40

J'ai rencontré le même problème, mais je n'ai pas ce qui a causé cela. Quoi qu'il en soit, je trouve des indices et je les corrige enfin.

Lorsque j'ouvre le SDK et le gestionnaire AVD, mais que je trouve que la version AVD (2.3.3) n'est pas la même avec la version lib android (2.3). Je crée donc un nouvel AVD avec 2.3.

Je l'ai corrigé par les étapes suivantes: 1. Ouvrez le gestionnaire de tâches Windows et tuez le processus adb.exe. 2. Fermez eclipse et redémarrez-le. Alors ça marche.

J'espère que ça aide.


35

Ces symptômes se produisent si vous utilisez l'émulateur Genymotion (sous Windows ou Linux) en même temps qu'Android Studio:

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

Genymotion inclut sa propre copie de adb, qui interfère avec celle fournie dans le SDK Android.

Le moyen le plus simple de réparer semble être de mettre à jour vos paramètres Genymotion afin qu'il utilise le même ADB que votre SDK Android:

Paramètres ADB de genymotion

Cochez simplement l'option "Utiliser les outils personnalisés du SDK Android" et entrez l'emplacement souhaité.


Fonctionne pour moi après la mise à jour d'Android Studio vers 2.1.2.
Noel Bautista

35

ADB échouera souvent s'il y a une nouvelle ligne dans adb_usb.ini. Retirez-le, redémarrez-le, et cela résoudra souvent le problème (du moins pour moi en tout cas).


tout en essayant de déboguer avec Kindle Fire voulait faire une entrée dans ce fichier ~ / .android / adb_usb.ini, mais a ajouté sans le savoir quelques lignes vides supplémentaires. Maintenant enlevé. a été réparé, merci.
Jeudi

35

Invite de commande (cmd.exe):

netstat -aon | findstr 5037

Trouvez l'ID de processus de 0.0.0.0:

Entrez la description de l'image ici

Assurez-vous que c'est adb.exe:

tasklist | findstr 1980

Entrez la description de l'image ici

Tuez ce processus:

taskkill /f /t /im adb.exe

Entrez la description de l'image ici

Ramenez ADB à la normale:

Entrez la description de l'image ici

Crédit: article de blog * Le serveur Android ADB n'a pas ACK n'a pas pu démarrer le démon *


Mon côté est tfadb.exe, après l'avoir tué, ça marche, merci.
BobGao

Dans mon cas, svchost.exe utilisait le port. Après l'avoir tué, il a commencé avec succès.
ranka47 le

13

Si vous utilisez une application de synchronisation pour l'appareil, cela peut également être dû au fait que d'autres applications utilisent le même 5037port. Arrêtez tous les services exécutés sur le port5037 et essayez de démarrer ADB.

Pour vérifier si une application utilise le port 5037, utilisez ceci:

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

Obtenez le PID de l'application.

Utilisez Process Explorer pour trouver le processus et le quitter.

Utilisez maintenant adb start-serverou adb get-statepour démarrer / vérifier l'état du serveur ADB.

J'ai rencontré le problème lorsque j'ai utilisé l'application Snappea / Wandoujia Sync.


Merci! svchost.exe utilisait soudainement ce port pour une raison quelconque.
Jacob L

Je ne sais pas quand cela sera corrigé, mais c'est dommage de ne pas l'être encore.
Dejan

8

J'ai causé ce problème en entrant une ligne vierge supplémentaire à la fin de ~ / .android / adb_usb.ini

(La suppression de la ligne vierge supplémentaire a résolu le problème)


J'ai résolu un problème similaire en supprimant toutes les lignes vides, pas seulement la dernière.
Pavel

2
J'ai eu le même problème car j'ai ajouté une ligne vierge à la fin lors de la saisie des lignes Kindle Fire. J'ai supprimé la ligne vide et adb a redémarré sans problème. Merci.
Jerome Mouneyrac

7

Nous pouvons résoudre ce problème si facilement.

  1. Ouvrez une invite de commande et faites cd <platform-tools directory>
  2. Exécuter la commande adb kill-server
  3. Ouvrez le gestionnaire de tâches Windows et vérifiez si adb est toujours en cours d'exécution. Si c'est le cas, tueadb.exe
  4. Exécutez la commande adb start-serverdans l'invite de commande

Entrez la description de l'image ici


Pas besoin de redémarrer Eclipse! :)
TWiStErRob

5

J'ai résolu ma première question: ouvrez Eclipse, ouvrez le gestionnaire SDK et choisissez l'appareil à ouvrir.

Ou vous pouvez ouvrir le répertoire SDK. Ouvrez le Gestionnaire de SDK, puis choisissez l'appareil à ouvrir

2: Fermez Eclipse, puis ouvrez-le.


5

Assurez-vous que le débogage USB sur votre téléphone est activé. Le kill-server ADB et le serveur de démarrage ADB ne sont pas le problème.

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 *

4

J'ai déjà voté une autre réponse ici à cette question, mais juste au cas où quelqu'un se poserait la question, vous n'avez pas besoin de redémarrer Eclipse pour redémarrer ADB. Ouvrez simplement un shell et exécutez la commande:

adb start-server

Si vous n'avez pas défini le chemin d'accès à ADB dans les propriétés de votre système, vous devez d'abord aller dans le répertoire dans lequel ADB existe (dans Android \ android-sdk \ platform-tools .... J'exécute Windows, je ne le fais pas) Je ne sais pas comment les gens mac font les choses).


2
Cela n'a pas d'importance. J'obtiens également l'erreur de la ligne de commande.
IgorGanapolsky

Je n'ai pas trouvé de moyen de le faire sur Mac. Forcer à quitter ADB n'a pas aidé, j'ai donc dû redémarrer tout l'ordinateur. Ensuite, cela a fonctionné à nouveau.
Marcel Bro

2

Rendez-vous sur sysinternals.com et récupérez TCPVIEW et PROCESS EXPLORER, si vous ne les avez pas déjà installés.

Pour une raison quelconque, le démon ADB se termine avant que l'échange de socket de fermeture ne soit terminé. Si vous exécutez (à partir de l'invite de commande) "NETSTAT -o", vous verrez le socket (généralement 5037) dans l'état CLOSE_WAIT et le numéro de processus propriétaire. Process Explorer n'affichera pas cet ID de processus (le démon s'est arrêté) et le processus appelé adb.exe (qui a ouvert le socket) disparaîtra. (Si adb.exe est trouvé, essayez de tuer la tâche et voyez si les choses sont nettoyées.)

À l'aide de TCPVIEW, recherchez le socket bloqué. La colonne du nom du processus indiquera que le processus associé est introuvable. Cliquez avec le bouton droit de la souris et sélectionnez «Fermer la connexion». Le socket est maintenant fermé et le démon adb devrait pouvoir démarrer.


Utile. En outre, dans l'Explorateur de processus, si vous voyez un adb.exe s'exécuter avec la colonne Chemin indiquant [Erreur lors du processus d'ouverture], cela peut être le coupable probable.
Samik R

2

J'ai eu un problème similaire. Tuer une instance existante du processus ADB à partir du Gestionnaire des tâches n'a pas fonctionné pour moi.

Il y a quelques jours à peine, j'avais essayé d'installer MIPS SDK et ADT-17 plus tôt et Eclipse m'a donné l'erreur, et je n'ai pas résolu ce problème.

Donc, maintenant, quand j'ai eu ce serveur ADB qui n'a pas ACK, n'a pas réussi à démarrer le démon ... problème, j'ai exécuté 'Vérifier les mises à jour' dans l' élément de menu Aide Eclipse . Il n'y avait aucune mise à jour disponible, mais au moins l'erreur «Le serveur ADB n'a pas ACK» a disparu.

J'espère que cela pourrait aider dans quelques cas.


1

Tapez ./adb nodaemon serverun terminal.

S'il revient Invalid content in adb_usb.ini, cela signifie qu'il y a un problème avec votre adb_usb.inifichier dans le .androiddossier.

Ouvrez adb_usb.iniet effacez son contenu. Ensuite, redémarrez le serveur ... cela a fonctionné pour moi.


1

Vérifiez le chemin du répertoire Android. Il ne doit pas contenir d'espaces, etc.

Vérifiez également si le plugin a été correctement configuré dans Eclipse → Préférences .

Dans mon cas, j'ai tout vérifié plusieurs fois, mais cela ne fonctionnait toujours pas. J'étais sur le point de tout réinstaller, mais je suis tombé sur une réponse sur ce site (un autre article).

Vérifiez votre antivirus. Cela peut bloquer les ports adb.exeou les programmes d'émulation, etc. Cela a résolu le problème dans mon cas.


1

En plus de la solution de @Bastet :

En fait, nous devons tuer le processus en utilisant l'adresse 0.0.0.0:0. C'est pourquoi la plupart des personnes tuant adb.exedu Gestionnaire des tâches fonctionnaient (dans mon cas, je ne pouvais pas le voir même dans le Gestionnaire des tâches).

En suivant les étapes de @Bastet , j'ai découvert qu'un autre processus utilisait cette adresse. Je suis allé de l'avant pour le tuer, et il m'a donné ACCESS DENIEDcommeError .

Donc, en utilisant le, tasklist | findstr ****j'ai trouvé le nom du processus et l' ai tué à partir du Gestionnaire des tâches.

Par la suite, il a commencé à fonctionner.

Dans mon cas bas_daemonet j'utilisaisbas_helper cette adresse qui correspond à la fois à MOBOROBO .


0

J'ai eu le même problème. Mais il n'y avait aucun processus de adbsur mon ordinateur portable. Je viens de me déconnecter et de me connecter à mon compte, et c'est résolu ...

ADB pourrait démarrer à partir des fenêtres CMD après cela.


0

Le moyen le meilleur et le plus efficace sans redémarrer aucun appareil ou logiciel est:

Exécutez ce qui suit:

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

Et encore une chose ... ADB est une chose indépendante. Vous ne pouvez rien faire tant qu'il ne veut pas fonctionner. Il y a un autre moyen que j'ai découvert: laissez l'appareil connecté pendant 5 à 6 minutes et attendez. Bientôt, l'appareil se connecte et tente de se lancer.


0

Cela n'a commencé à m'arriver que lorsque j'ai rooté mon téléphone Samsung Galaxy S III (en suivant le guide du forum xda-developer).

Cela se produit de manière assez aléatoire, mais cela se produit définitivement lors de l'exécution d'Eclipse.

Tuer le processus adb.exe et le redémarrer résout le problème.


0

Regardez l'antivirus ou le pare-feu ... Est-ce que tout cela vous bloque l'accès ... Dans l'antivirus k7, j'ai désactivé le moniteur système, et cela fonctionne pour moi ...



-1

Tuer Eclipse puis redémarrer ne m'a pas aidé. J'ai ajouté l'outil Android aux variables PATH, lancé le Gestionnaire des tâches et tué adb.exe.

J'ai redémarré Eclipse, puis cela a fonctionné.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.