web-dev-qa-db-fra.com

La version du serveur ADB (36) ne correspond pas à ce client (39) {ne pas utiliser Genymotion}

Après avoir installé l'aperçu Android O sur un périphérique de test, la BDA a cessé de fonctionner et a commencé à me donner cette erreur.

adb server version (36) doesn't match this client (39); killing... adb E 03-27 08:01:55 2925 147690 usb_osx.cpp:333] Could not open interface: e00002c5 adb E 03-27 08:01:55 2925 147690 usb_osx.cpp:294] Could not find device interface error: could not install *smartsocket* listener: Address already in use ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon

Les seules réponses que j’ai rencontrées à ce sujet sont que Genymotion n’est pas synchronisé avec ADB mais je n’utilise pas Genymotion. Toute aide serait grandement appréciée. J'ai déjà effacé et réinstallé Android Studio, ainsi que tous ses outils et paramètres, mais semble toujours avoir ce problème.

68
HTMLlama

Dans mon cas, cette erreur s'est produite lorsque j'ai configuré le chemin adb de mon environnement sur ~/.Android-sdk/platform-tools (ce qui se produit par exemple lorsque Android-platform-tools est installé via homebrew), dont la version était 36, mais Android Studio. le projet a Android chemin suivant du SDK ~/Library/Android/sdk dont la version de l’annonce était 39.

J'ai changé mon PATH en platform-tools en ~/Library/Android/sdk/platform-tools et l'erreur a été résolue

48
Deni Erdyneev

Cela fonctionne pour moi ...

  • accédez aux paramètres de GenyMotion -> onglet ADB
  • au lieu d'utiliser les outils Genymotion Android, choisissez les outils personnalisés Android SDK, puis parcourez votre SDK installé.
88
Alecs

Tout d’abord, veuillez supprimer "{Ne pas utiliser Genymotion}" du titre. Cela distrait les lecteurs comme moi qui ne savent pas ce qu'est Genymotion. Ce qui est absurde, c’est que vous obteniez une réponse avec 21 points: "Accédez aux paramètres de GenyMotion" ...

Le point principal qui a échappé à tous les autres est que vous obtiendrez cette erreur si vous avez un processus en cours adb en arrière-plan. La première étape consiste donc à le trouver et à le tuer:

ps aux | grep adb
user          46803   0.0  0.0  2442020    816 s023  S+    5:07AM   0:00.00 grep adb
user          46636   0.0  0.0   651740   3084   ??  S     5:07AM   0:00.02 adb -P 5037 fork-server server

Quand vous le trouvez, vous pouvez le tuer en utilisant kill -9 46636.

Dans mon cas, le problème était une ancienne version de adb provenant de GapDebug. Si vous avez cela avec GapDebug, sortez-en et faites

adb kill-server
adb start-server

car avec GapDebug en arrière-plan, lorsque vous tuez le serveur adb , GapDebug démarrera immédiatement sa propre copie, ce qui entraînera l'ignorance du serveur de démarrage.

16
ishahak

Vous avez deux versions de ADB $ /usr/local/bin/adb version Android Debug Bridge version 1.0.36 Revision 0e9850346394-Android

$ /Users/user/Library/Android/sdk/platform-tools/adb version Android Debug Bridge version 1.0.39 Revision 3db08f2c6889-Android

Vous pouvez voir lequel de vos chemins pointe vers (echo $PATH) mais je l'ai corrigé avec un adb stop-server sur une version et un adb start-server sur l'autre.

9
user1221780

J'ai eu la même erreur. Dans mon cas, en utilisant Appium, j'avais deux versions de ADB

$ /usr/local/bin/adb version 36

et

$ /Users/user/Library/Android/sdk/platform-tools/adb version 39

La solution était:

  1. assurez-vous que votre $ PATH dans bash_profile pointe vers: /Users/user/Library/Android/sdk/platform-tools/

  2. arrêtez le serveur adb: adb kill-server et vérifiez qu'Appium est arrêté.

  3. supprimez la version 36 de l’adb (ou vous pouvez le renommer pour en faire une sauvegarde): rm /usr/local/bin/adb

  4. démarrer le serveur adb: adb start-server ou juste démarrer Appium

7
Ezetha

Pour ajouter encore une autre solution potentielle, Helium de Clockworkmod a sa propre version d'ADB intégrée, qui continue de démarrer. Quitter l'application Helium Desktop résout le problème.

6
HeWhoWas

J'ai eu le même problème avec Android Studio - la version du serveur adb (37) ne correspond pas à ce client (39). J'ai résolu par la solution suivante:

Dans Android Studio, accédez à Outils -> Android -> Gestionnaire de SDK.

Dans l'onglet Outils du SDK, désélectionnez Android Outils de plate-forme SDK, cliquez sur Appliquer pour désinstaller.

J'ai ensuite renommé le dossier Platform-Tools en Platform-ToolsOld

Ensuite, dans le SDK Manager, cochez à nouveau Platform-Tools pour procéder à la réinstallation.

6
Benno

Comme mentionné par d'autres ici, vous pourriez avoir deux adb en cours d'exécution ... et ajouter à ces réponses du point de vue de la boîte Linux (pour le prochain débutant qui travaille sous Linux);

  1. Désinstallez les outils Android de votre distribution (utilisez zypper ou yum, etc.)

    # zypper -v rm Android-tools
    
  2. Trouvez où se trouve votre autre annonce

    # find /home -iname "*adb"|grep -i Android
    

    Dis que c'était à;

    / home/développeur/Android/Sdk/platform-tools/adb

  3. Faites ensuite un lien symbolique vers celui-ci dans le dossier/usr/bin

     ln -s /home/developer/Android/Sdk/platform-tools/adb  /usr/bin/adb
    
  4. Ensuite;

     # adb start-server
    
4
MarcoZen

Je pense que vous avez plusieurs serveurs adb en cours d'exécution, genymotion pourrait être l'un d'entre eux, mais aussi Xamarin - Visual studio pour mac OS pourrait exécuter un serveur adb, fermer Visual studio a fonctionné pour moi

3
Nicolás Loaiza