android - système - La version du serveur adb ne correspond pas à ce client




programmation android pdf site du zero (18)

Assurez-vous qu'aucun autre processus adb n'est en cours d'exécution

Il peut y avoir plus d'un processus adb en cours d'exécution sur le système. Des outils tels que Android Reverse Tether peuvent utiliser leur propre version de l'outil adb, par conséquent la version en mémoire peut entrer en conflit avec la version exécutée à partir de la ligne de commande (via la variable path).

les fenêtres

Dans Windows, appuyez sur CTL + Maj + ÉCHAP pour accéder au Gestionnaire des tâches, trier dans la colonne Nom de l' image , puis supprimer toutes les instances de adb.exe en cliquant avec le bouton droit de la souris et en choisissant Fin du processus . Notez qu'il existe plusieurs instances de adb.exe ci-dessous:

Linux (Android)

Dans un environnement Linux, utilisez simplement la commande kill -9 . Quelque chose comme cela a fonctionné sur un périphérique Android exécutant adb (utilisez la sortie ps , recherchez grep pour un processus commençant par adb , récupérez l'ID de processus du adb processus adb et envoyez cet ID à la commande kill -9 ):

kill -9  $(ps  | grep "S adb" | busybox awk '{print $2}')

Ensuite, redémarrez adb

Une fois les processus adb - et donc les conflits - résolus, réessayez d'exécuter adb partir de la ligne de commande:

adb start-server

Chaque fois que j'essaie d'exécuter des adb devices :

            $ adb devices
            * daemon not running. starting it now *
            * daemon started successfully *
            List of devices attached
            HT0ANRV05740    device

Il dit que le démon n'est pas en cours d'exécution et redémarre le démon.

Ensuite, si je lance à nouveau des périphériques adb, il fait la même chose -

            $ adb devices
            adb server is out of date.  killing...
            * daemon started successfully *
            List of devices attached
            HT0ANRV05740    device

Ensuite, si je le relance, il fait exactement la même chose -

            $ adb devices
            adb server is out of date.  killing...
            * daemon started successfully *
            List of devices attached
            HT0ANRV05740    device

S'il vous plaît aider !!

Aussi, mon DDMS continue à me donner le message suivant -

[2011-02-23 16:17:05 - DeviceMonitor]Adb connection Error:An existing connection was forcibly closed by the remote host

Voici les logs de juste avant le redémarrage d'adb -

              1291        locapi_rpc_glue  V  loc_ioctl
              1291                    RPC  D  written RPC packet size: [480]
              1291                    RPC  D  read RPC packet
              1291                    RPC  D  read RPC packet size: [28]
              1291             lib_locapi  V  qct_loc_eng_inject_xtra_data, inject part = 100, len = 167, len = 167
              1291             lib_locapi  V  qct_loc_eng_inject_xtra_data, total part = 100, len = 167
              1291        locapi_rpc_glue  V  loc_ioctl
              1291                    RPC  D  written RPC packet size: [248]
              1291                    RPC  D  read RPC packet
              1291                    RPC  D  read RPC packet size: [28]
              1291             lib_locapi  D  qct_loc_eng_inject_xtra_data: injected 39767, SUCCESS
              1291             lib_locapi  V  inject_xtra_waiting = flase
              1291    GpsLocationProvider  D  Releasing wakelock
              1291            WifiService  D  releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]}
              1291            WifiService  D  enable and start wifi due to updateWifiState
              1218            rmt_storage  I  rmt_storage open event
              1218            rmt_storage  I  rmt_storage client thread started
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage register cb event
              1218            rmt_storage  I  rmt_storage status id = 2
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage open event
              1218            rmt_storage  I  rmt_storage client thread started
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage register cb event
              1218            rmt_storage  I  rmt_storage status id = 2
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage write event
              1218            rmt_storage  I  unblock rmt_storage client thread
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage write: bytes written = 3145216
              1218            rmt_storage  I  rmt_storage write: bytes written = 512
              1218            rmt_storage  I  rmt_storage status handle = 1
              1291       BatteryStatsImpl  I  notePhoneSignalStrengthLocked: 4->3
              1218            rmt_storage  I  rmt_storage write event
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  unblock rmt_storage client thread
              1291    PowerManagerService  D  New lightsensor value:40, lcdValue:143
              1291    PowerManagerService  D  lightSensorChangedLocked, buttonValue >= 0, mPowerState = 3
              1218            rmt_storage  I  rmt_storage write: bytes written = 3145216
              1218            rmt_storage  I  rmt_storage write: bytes written = 512
              1218            rmt_storage  I  rmt_storage status handle = 2
              1291                    RPC  D  read RPC packet
              1291                    RPC  D  read RPC packet size: [80]
              1291        locapi_rpc_glue  V  Callback received: 80 (cb_id=0x50B0000 handle=1)
              1291                    RPC  D  written RPC packet size: [28]
              1470   usicWidgetController  D  unbindMusicPlaybackService()
              1707   MediaPlaybackService  E  BadQueue mPlayListLen : 0 mAlbumListLen : 0 mShrinkAlbumListLen : 0
              1291    NotificationService  V  Battery Full, Charging
              1291                 lights  E  write ok string=0,len=1
              1291                 lights  E  write ok string=0,len=1
              1291                 lights  E  write ok string=0 0,len=3
              1291                 lights  E  write ok string=1,len=1
              1707       MediaPlayer.java  D  setOnCompletionListener being cleaned to null
              1291                 lights  E  write ok string=0,len=1
              1291                 lights  E  write ok string=0 0,len=3
              1291    NotificationService  V  Turn off Jogball/OJ LED
              1291    NotificationService  D  cancelNotification, ACTION_NOTIFICATION_REMOVE,pkg=com.htc.music,id=1
              1291           AudioService  I   AudioFocus  abandonAudioFocus() from [email protected][email protected]

A aidé pour moi: arrêter HTC Sync (dans la barre d'état système) et renommer adb.exe de HTC (C: \ Program Files (x86) \ HTC \ HTC Sync 3.0 \ adb.exe).


Cela est dû au fait que vous utilisez un adb autre que celui inclus dans le SDK. Si sur Linux vérifier où est le binaire adb situé

which adb
Expected Output : ANDROID_SDK/platform-tools/adb

Si vous ne pointez pas sur ANDROID_SDK / platform-tools / adb, vous exécutez une ancienne version d'adb installée à un emplacement différent de la machine.

Rien de mal à lancer adb autre que celui fourni avec SDK mais l'inconvénient est qu'il n'est pas mis à jour automatiquement lorsque le SDK android est mis à jour et c'est pourquoi vous rencontrez ce problème de version obsolète.

La solution plus facile et pour éviter ce problème à l'avenir renommer le fichier binaire ADB plus ancien (trompeur) à quelque chose d'autre.

Suivez les étapes pour résoudre ce problème.

$ which adb
*o/p /usr/bin/adb  -   (output will depend on your machine)*
$ cd /usr/bin/
$ ls -lt | grep adb
*o/p -rwxr-xr-x 1 root   root      160912 Mar 31  2016 adb*
$ sudo mv adb adb_bakup
$ ls -lt | grep adb
o/p -rwxr-xr-x 1 root   root      160912 Mar 31  2016 adb_bakup
$ export PATH="/path/to/android_sdk/platform-tools:$PATH"
$ which adb  
*o/p <your android sdk dir>/platform-tools/adb*   ---> You are all good now

Comme mentionné ci-dessus, le problème vient d'une version conflictuelle de adb.exe livré avec HTC Sync. Le supprimer de PATH n'aidera pas, car htcUPCTLoader.exe qui s'exécute constamment en arrière-plan relancera toujours la mauvaise version ADB.

Une solution serait de supprimer complètement adb.exe du dossier HTC Sync, mais cela pourrait casser HTC Sync.

Je viens de coder un simple outil qui remplace l'ancien adb.exe avec un stub qui invoque le dernier adb.exe du répertoire SDK en éliminant les conflits (par exemple la version 1.0.25 avec HTC Sync et la version 1.0.29 avec Android SDK) .

L'outil peut être téléchargé sur http://visualgdb.com/adbfix


Dans ma machine (Ubuntu 14.04 et Genymotion 2.5.2) la source du problème était que j'avais 2 fichiers adb de versions différentes.

(Avant de préciser cette source de problème, j'avais déjà installé les paramètres de Genymotion "Utiliser des outils SDK Android personnalisés" en référence au répertoire Android SDK installé sur ma machine comme conseillé par Aditya Kresna Permana. solutions provenant du web).

Puis vu, que la adb version cours d' adb version partir de mon répertoire d'installation Android SDK "~ / Android / Sdk / platform-tools" produit - "Android Debug Bridge version 1.0.32"

Mais, la commande de adb version du répertoire "/ usr / bin" produit- "Android Debug Bridge version 1.0.31"

Donc juste suivi - http://bernaerts.dyndns.org/linux/74-ubuntu/328-ubuntu-trusty-android-adb-fastboot-qtadb pour mettre à jour l'adb dans "/ usr / bin"

# adb version
Android Debug Bridge version 1.0.31
# wget -O - https://skia.googlesource.com/skia/+archive/cd048d18e0b81338c1a04b9749a00444597df394/platform_tools/android/bin/linux.tar.gz | tar -zxvf - adb
# sudo mv adb /usr/bin/adb
# sudo chmod +x /usr/bin/adb
# adb version
Android Debug Bridge version 1.0.32

Et maintenant, l'exécution des adb devices fonctionne parfaitement comme prévu.

Et il a également résolu le problème associé qui, avant que mon application PhoneGap (Cordova) ne soit pas intégrée avec le périphérique virtuel de Genymotion. Maintenant, évidemment, ce problème a également été résolu.


Dans mon cas, le problème a été causé par Virtuous Ten Studio, qui a le fichier adb.exe dans le répertoire External/ADB .

Allez-y et exécutez .\adb.exe kill-server et vous serez bon.


Il semblerait que le démon ADB sur le périphérique (adbd) soit en désaccord avec le processus du serveur ADB sur votre ordinateur hôte quant à la version du protocole dont ils parlent. Quelle version du SDK exécutez-vous et quelle est la version du système d'exploitation sur l'appareil que vous déboguez?

Ce que vous devrez peut-être faire, c'est rétrograder votre version des outils du SDK afin que le démon et le processus ADB soient en accord. Je pensais que le processus du serveur était complètement rétrocompatible, mais cela pourrait être l'un de ces cas où ce n'est pas le cas. Google n'annonce pas le fait que vous pouvez obtenir leurs anciens paquets d'outils SDK, mais ils peuvent être trouvés en regardant dans la zone des archives à http://developer.android.com .


J'ai également eu ce problème aujourd'hui, s'avère que j'ai désactivé mes conducteurs de réseau parce que j'avais des problèmes de WIFI / LAN. réactivation corrigé le problème


J'ai eu ce problème sur l'une de mes machines de développement (toutes les fenêtres exécutent 7 x64) alors que toutes les autres machines fonctionnent normalement. La raison pour laquelle j'ai rencontré ce problème est que j'ai une ancienne version de adb.exe dans % android-sdk% \ tools alors que les nouveaux SDK Android ont adb.exe sous % android-sdk% \ platform-tools

supprimez l'ancien adb.exe de% android-sdk% \ tools et ajoutez% android-sdk% \ platform-tools à% PATH% résout ce problème

ou plus généralement, traque tout exécutable adb dans votre chemin qui est obsolète, utilisez simplement le dernier fourni avec Android SDK


J'ai parcouru toutes les réponses sur SO et cela n'a pas fonctionné pour moi. Lorsque j'ai supprimé le processus adb.exe du Gestionnaire des tâches, il a continué à le rouvrir et la raison était que Droid Explorer travaillait en arrière-plan .

Tuer le processus DE via le Gestionnaire des tâches, puis tuer adb.exe (et l'exécuter de nouveau à partir de la console via 'adb start-server' a fonctionné pour moi.

Cela peut être utile pour beaucoup de personnes qui ont enraciné leurs appareils .


Je me suis battu la tête contre le mur sur celui-ci. Cela a commencé à se produire lorsque j'ai installé la dernière version de HTC Sync (3.0.5579). Pour une raison ou une autre, adb.exe apparaissait plusieurs fois dans le gestionnaire de tâches et je recevais que le serveur adb ne tue plus les erreurs plusieurs fois. J'ai trouvé la version adb.exe dans le répertoire HTC Sync et dans le répertoire platform-tools d'Android SDK. J'ai eu la configuration du chemin d'accès pointant correctement sur le répertoire android SDK et n'a pas vu le chemin HTC Sync (peut-être me manquait quelque chose, mais je ne le pense pas). Quoi qu'il en soit, pour résoudre le problème, j'ai simplement renommé le fichier adb.exe dans le répertoire HTC Sync et tout a fonctionné à nouveau. Ce n'est peut-être pas la bonne façon de régler ce problème, mais cela a fonctionné pour moi.



Je viens de quitter HTC Sync, j'ai essayé à nouveau, et cela a fonctionné. Avis: Le téléphone est devenu noir (verrouillé), je l'ai juste allumé, et mon application a fonctionné. :)


Malheureusement, je n'ai pas encore assez de réputation pour commenter. Mais la réponse marquée comme une réponse m'a envoyé dans la bonne direction.

Je n'ai rien vu dans mon chemin lié à HTC Sync Manager, bien que je l'ai installé. Je ne travaille pas avec mon appareil HTC pour le moment, et seul le gestionnaire de synchronisation était installé pour résoudre les problèmes de pilotes. Après avoir désinstallé le gestionnaire de synchronisation HTC, cette question a disparu pour moi.

J'espère que ceci aide quelqu'un d'autre.


Première fermeture Toutes les choses qui utilisent ADB. (Android Studio, Eclipse, Emulator (Bluestack ainsi)), puis faites

adb kill-server
adb start-server

Dans mon cas je viens de recevoir la mise à jour de Studio.


Si l'appareil avec lequel vous essayez d'interagir est un téléphone physique connecté via USB, vous pouvez le débrancher et le rebrancher et cela devrait fonctionner. Parfois, ça ne se synchronise pas, je pense.


Système: Windows 7, Android Studio.

Cette erreur s'est produite lorsque j'ai exécuté des adb devices partir de la ligne de commande Windows.

La cause première était que l' adb que je courais à partir de la ligne de commande n'était pas le même adb fonctionnant à partir d'Android Studio.

Solution:

  1. Commencez par tuer tous les processus adb en cours d'exécution sur la machine.

    taskkill /F /IM adb.exe

  2. Exécutez votre application à partir d'Android Studio.

  3. Recherchez l'emplacement de fichier exact de adb.exe soit à partir du Gestionnaire des tâches Windows, soit en exécutant la commande ci-dessous

    wmic process where "name='adb.exe'" get ProcessID, ExecutablePath

  4. Sur l'invite de commande Windows, exécutez where adb pour localiser l'ADB qui s'exécute à partir de l'invite de commande. Ce chemin serait différent de celui de l'étape 3 ci-dessus.

  5. Editez la variable système Windows PATH. Supprimez le chemin de base trouvé à l'étape 4.

  6. Après avoir modifié PATH, vous pouvez voir le contenu actuel de cette variable en tapant la commande ci-dessous dans une NOUVELLE invite de commande (n'utilisez pas l'ancienne invite).

    echo %PATH%

Maintenant, lancez adb à partir de l'invite de commande. Il ne doit pas afficher d'erreur "serveur obsolète"!


Utilisez-vous Genymotion pour un périphérique virtuel?

si oui, cette erreur est probablement apparue car ADB de Genymotion était en conflit avec votre ADB d'Android SDK (en utilisant le même numéro de port), pour régler ceci, allez dans settings => choisissez ADB tab => cliquez sur l'option Use custom Android SDK Tools votre dossier SDK

Après avoir configuré ceci, essayez de redémarrer votre adb en allant dans le dossier platform-tools auquel adb placé et faire cette commande:

  • ./adb kill-server
  • ./adb start-server

* Astuces: Vous pouvez fermer le processus de Genymotion avant d'exécuter la commande ci-dessus

J'espère que cette aide.





adb