web-dev-qa-db-fra.com

La détection du périphérique de débogage (ADB) ne fonctionne pas

J'ai activé le débogage USB sur ma tablette Internet Archos 43 (Android 2.3.26), mais adb ne détecte pas l'appareil.

J'ai Kubuntu 11.04.

Sortie de la commande Shell "lsusb":

michael@schlepptop777:~/.Android_sdk/platform-tools$ lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0e79:1411 Archos, Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Donc, mon "ID fournisseur" est 0e79, n'est-ce pas?

Pour l'étape suivante, j'ai créé le fichier suivant:

Sudo kate /etc/udev/rules.d/51-Android.rules

avec le contenu suivant:

SUBSYSTEM=="usb", SYSFS{idVendor}=="0e79", MODE="0666"

Après cela, j'ai défini les autorisations:

Sudo chmod a+rx /etc/udev/rules.d/51-Android.rules

Ensuite, je l'ai enregistré et redémarré udev:

Sudo /etc/init.d/udev restart

Et après avoir fait toutes ces étapes, adb n'affiche toujours pas mon appareil:

michael@schlepptop777:~/.Android_sdk/platform-tools$ ./adb devices
List of devices attached 
<empty line, because stackoverflow does not display this>
30
Spitfire777

Dans certains cas, vous devez également ajouter l'ID du fournisseur à ce fichier: ~/.Android/adb_usb.ini

# Android 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'Android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE. 
0x0e79

N'oubliez pas que ce fichier peut être écrasé lorsque vous mettez à niveau le SDK, vous devrez donc peut-être le rééditer par la suite.

33
Jarek Potiuk

Mageia 2

Au début, j'ai eu quelque chose comme:

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 

Ensuite, j'ai trouvé que je devais faire Paramètres | Applications | Développement et cochez la case Débogage USB.

$ adb devices
List of devices attached 
???????????????? no permissions

En essayant en tant que root, j'ai obtenu:

$ su -l
# adb devices
List of devices attached 
???????????????? no permissions

Ensuite, j'ai réalisé que adb fonctionnait toujours en tant qu'utilisateur régulier. Quand, en tant que root, j'ai fait:

# adb kill-server
# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline

ADB pour Android (ARCHOS Internet Tablet) a été utile, sauf que j'ai fini par le faire en tant que root:

# cat /etc/udev/rules.d/51-Android.rules 
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
SUBSYSTEM=="usb", ENV{PRODUCT}=="e79/*", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"
# udevadm control --reload-rules
# udevadm monitor
.
.
.
^C

La commande monitor était utile car elle montrait que le périphérique se connecte, se déconnecte, les chemins, etc.

J'ai ensuite pu arrêter le serveur en tant que root et le démarrer en tant qu'utilisateur normal:

# adb kill-server
# exit
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline

L'appareil ne fonctionnera pas lorsqu'il est "hors ligne". Pour résoudre ce problème, j'ai dû redémarrer l'Archos 43.

$ adb devices
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 device

Bien que je doute que ces actions soient nécessaires, pour jouer en toute sécurité, après le redémarrage, je me suis assuré de brancher l'USB et de sélectionner Charge uniquement avant de configurer le débogage USB. J'avais également désactivé le WiFi et la synchronisation, mais une fois qu'il a commencé à fonctionner, adb se connectait toujours avec ceux qui étaient activés.

À ce stade, le téléchargement de mon application a fonctionné:

$ adb install bin/HelloWorld.apk 
2914 KB/s (157589 bytes in 0.052s)
        pkg: /data/local/tmp/HelloWorld.apk
Success

P.S. Le lendemain, sachant que tout fonctionnait la veille, j'ai démarré mon système de développement et j'ai essayé de me reconnecter. Cela a donné le statut "hors ligne". J'ai désactivé la synchronisation et le WiFi, sans redémarrer l'Archos 43, puis adb devices montrait le statut "appareil" au lieu de "hors ligne". Je ne sais pas quoi penser de cela, mais désactiver ce genre de choses pourrait avoir une signification après tout.

7
kbulgrien

Après avoir exécuté la commande Sudo /etc/init.d/udev restart vous devez redémarrer le système! Je sais, cela ressemble à un comportement Windows, mais je me suis cassé la tête pendant 3 heures avant de découvrir cette chose.

2
Antonio

J'ai emprunté un câble à un lecteur de carte SD et cela ne fonctionnait pas pour ADB, alors qu'il fonctionnait pour le lecteur de carte SD. J'ai essayé un nouveau câble et les appareils adb bas et voici reconnaît l'appareil!

2
aultimus

En fait, tout comme Aultbot, le remplacement du câble a également fait l'affaire. Étrange car j'avais utilisé le câble pendant plusieurs heures alors qu'il ne fonctionnait tout à coup pas avec ADB.

Assurez-vous également d'accepter la connexion sur le téléphone (nouvelle fonction de sécurité dans Android 4)

Edit: Récemment, il y a eu quelques problèmes concernant le service adb. S'il n'est pas démarré (vérifiez avec netstat ou similaire ou tapez "set ADB_TRACE = 1" avant d'exécuter votre commande adb pour obtenir des messages de débogage), puis vérifiez les threads traitant de ce message d'erreur. Un problème courant est que le port par défaut est utilisé par une autre application (changez le port en tapant "set Android_ADB_SERVER_PORT = 12345" avant la commande adb).

1
Jacob L

Je suis sur ubuntu 11.04, la seule façon d'obtenir que adb se connecte à mon Atrix est de changer le mode de connexion USB en "Windows Media Sync". Ce qui est étrange en premier lieu, mais c'est particulièrement étrange car ADB sur Windows ne se connectera pas lorsqu'il est configuré pour gagner la synchronisation multimédia. Ou vous pouvez utiliser l'adb sans fil. Il y a quelques widgets qui facilitent vraiment l'activation du wifi adb. Ils montrent l'adresse IP sur le widget et tout. :)

0
Brent