web-dev-qa-db-fra.com

Impossible de se connecter à l'émulateur via ADB genymotion

J'essaie de me connecter à un Android vm fonctionnant via genymotion. Cependant, je reçois toujours le message d'erreur suivant lorsque j'essaie de me connecter via adb:

adb server version (41) doesn't match this client (39); killing...

J'ai vu beaucoup d'autres personnes avoir ce problème, et j'ai tout essayé et pour une raison quelconque, je n'arrive toujours pas à le faire fonctionner. J'ai Genymotion en utilisant le Android SDK au lieu de Genymotion par défaut.

Je pense que l'erreur pourrait résider quelque part avec moi pour essayer de faire fonctionner correctement Genymotion sous d'autres étapes d'installation, comme lorsque j'exécute adb --version J'obtiens ce qui suit:

Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5~18.04

Quelqu'un d'autre a-t-il rencontré ce problème? Si cela fait une différence, j'utilise actuellement Ubuntu 18.04 et mon émulateur n'est pas connecté au wifi. Merci à tous ceux qui ont répondu à l'avance.

1
aty0

En génymotion, allez à Settings → ADB et sélectionnez le SDK que vous avez installé.

1
fayesta78

J'ai certainement rencontré ce message d'erreur lorsque j'essayais de me connecter à un Genymotion VM en utilisant le Android SDK platform-tools ADB au lieu d'utiliser la version fournie par Genymotion; cependant, je n'ai pas essayé de configurer Genymotion pour utiliser la Android ADB fournie par SDK.

J'essaierais de me connecter avec la version fournie par Genymotion. Il semble que Genymotion ne respecte pas la configuration que vous avez mise en place.

C'est le problème que j'ai observé:

Genymotion failure to connect with wrong ADB.

Comme le montre cette capture d'écran. Ce problème se produit définitivement lorsque vous essayez de vous connecter avec une version d'ADB qui ne correspond pas à la version utilisée par Genymotion.

Pour confirmer la version utilisée par Genymotion (c'est-à-dire pour vous assurer qu'elle respecte vos configurations), exécutez ce qui suit:

netstat -tlpn | grep -i adb

Cela devrait vous indiquer l'ID de processus du serveur ADB qui écoute les connexions. En utilisant cet ID de processus, nous pouvons déterminer quelle version d'ADB s'exécute via ls -la /proc/ADB_PROCESS_ID/ (Évidemment, remplacez-le par l'ID de processus numérique.)

Par exemple, je peux voir que le serveur ADB fonctionnant de mon côté est /opt/genymobile/genymotion/tools/adb, Comme illustré ci-dessous:

Example of the aforementioned steps showing which executable ADB server is using

Si Genymotion semble utiliser la version d'ADB que vous vous attendiez à ce qu'elle utilise, alors vous voudrez peut-être exécuter which adb Et ensuite readlink "$(which adb)". Si ce résultat est inattendu, vous devez vous assurer que le répertoire dans la variable d'environnement adb correcte apparaît plus tôt dans votre variable d'environnement PATH, ou vous pouvez essayer d'ajouter un alias pour adb qui pointe explicitement vers le chemin correct. (J'ajouterais probablement à l'avant du PATH plutôt que d'utiliser un alias, car les autres applications que vous exécutez seront plus susceptibles de respecter le PATH que de respecter un alias.)

Si vous trouvez que le chemin ADB auquel Genymotion fait référence est différent du chemin auquel ADB fait référence et que vous décidez de résoudre ce problème en modifiant votre PATH, vous devez modifier le fichier .bash_profile Dans votre maison. pour ajouter la ligne suivante (modifier si nécessaire) en bas:

export PATH="/path/to/adb-directory:$PATH"

Après cela, vous devrez peut-être exécuter source ~/.bash_profile && hash -r Et pour que la modification prenne effet. Après cela, si tout fonctionnait correctement, l'exécution de la commande which adb Ci-dessus devrait afficher le chemin d'accès souhaité à ADB.

0
Spencer D

Cela a en fait résolu mon problème Sudo cp ~/Android/Sdk/platform-tools/adb /usr/bin/adb

0
Sabit Rakhim