Essayer d'utiliser adb Shell
du terminal après le démarrage de l'émulateur genymotion et j'obtiens cette erreur:
adb server is out of date. killing...
cannot bind 'tcp:5037'
ADB server didn't ACK
* failed to start daemon *
error:
J'ai lu cette réponse sur stackoverflow pour exécuter cette commande killall -9 adb
si je l'ai fait, puis il est dit de modifier les paramètres de Genymotion pour utiliser des outils personnalisés Android SDK comme suit:
J'ai également fait cela comme vous pouvez le voir dans la capture d'écran ci-dessus, mais je reçois toujours le même message d'erreur.
Mes journaux Android Studio ADB donnent le message suivant chaque fois que j'essaie d'exécuter adb Shell
:
DeviceMonitor: Adb connection Error:EOF
DeviceMonitor: Connection attempts: 1
J'ai même essayé de créer un nouvel appareil virtuel et de l'utiliser sans succès.
mettez à jour l'adb à 1.0.32 si vous avez 1.0.31 ou moins
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
Aucune de ces solutions n'a fonctionné pour moi du tout.
La solution qui a résolu mon erreur a été d'ajouter les répertoires manquants/Android/Sdk/tools &/Android/Sdk/platform-tools à ma variable Environment PATH, ceci peut être réalisé avec la commande suivante:
export PATH=/home/{username}/Android/Sdk/tools:/home/{username}/Android/Sdk/platform-tools:$PATH
Assurez-vous d'interpoler votre propre nom d'utilisateur dans la commande, en remplaçant {username} par le nom d'utilisateur de votre système d'exploitation.
Cela dirigera votre ligne de commande pour rechercher la variable PATH de votre Environmant pour l'emplacement approprié de l'exécutable adb, sans cette variable d'environnement définie, votre système ne sait pas où chercher l'exécutable correct.
La cause première de ce problème est que vous essayez d'exécuter des adbs de différentes versions. Le côté PC (hôte) adb est composé de deux parties: adb et adb server.
adb <----> serveur adb <--------USB-------> adbd (périphérique)
adb et adb server sont en fait le même binaire, mais adb server s'exécute en arrière-plan lorsque vous lancez une commande adb pour la première fois. Après cela, la commande adb contactera quel serveur adb chaque fois que vous exécutez adb, et tout d'abord elle vérifiera les versions du serveur adb en cours d'exécution. Si la version ne correspond pas, vous verrez que le serveur adb est obsolète. meurtre...'. C'est la seule raison.
int adb_connect(const std::string& service, std::string* error) {
// first query the adb server's version
int fd = _adb_connect("Host:version", error);
...
if (version != ADB_SERVER_VERSION) {
printf("adb server is out of date. killing...\n");
fd = _adb_connect("Host:kill", error);
adb_close(fd);
/* XXX can we better detect its death? */
adb_sleep_ms(2000);
goto start_server;
}
Pour résoudre ce problème, il vous suffit de vous assurer que vous ne tentez pas d'exécuter une version adb différente.
[chemin d'accès au serveur adb]/version adb
La sortie comme ceci:
Android Debug Bridge version 1.0.35
Revision 68de85bda98d-Android
"1.0.35" est le numéro de version.
version adb
s'ils ne correspondent pas, vous pouvez: