2010-08-11 24 views
3

===============================développement Android: DDMS de ligne de commande ne pas voir les appareils

* SOLVED *: voir la réponse ci-dessous

Je ne veux pas utiliser Eclipse.

partir de la ligne de commande:

Un émulateur est en cours d'exécution. Le serveur adb est en cours d'exécution. "adb devices" répertorie correctement et je peux voir mon instance sur un avd dans la sortie. Cependant, lorsque je démarre manuellement DDMS à partir de la ligne de commande, il continue à essayer de se connecter. Je ne peux trouver aucun problème de configuration de connexion.

Toutes les suggestions (autres que "utiliser Eclipse") sont les bienvenues!

(oui, cela fonctionne à partir d'Eclipse et DDMS montre des fils, etc)

système: Debian squeeze

Mise à jour: Je courais update-java-alternatives pour être sûr java a été correctement configuré pour « Java (TM) SE Runtime Environment (build 1.6.0_20-b02) ". Pas trop d'une surprise pour les utilisateurs chevronnés Debian mon Java est maintenant pire ... Quand je lance DDMS de la ligne de commande je reçois: -

(ddms:9326): Gdk-WARNING **: gdk_window_set_icon_list: icons too large 
04:29 E/ddms: Failed to reopen debug port for Selected Client to: 8700 
04:29 E/ddms: Invalid argument 
java.net.SocketException: Invalid argument 
    at sun.nio.ch.Net.bind(Native Method) 
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119) 
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59) 
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:52) 
    at com.android.ddmlib.MonitorThread.reopenDebugSelectedPort(MonitorThread.java:716) 
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:226) 

04:29 E/DeviceMonitor: Connection attempts: 1 
04:30 E/DeviceMonitor: Connection attempts: 2 
04:31 E/DeviceMonitor: Connection attempts: 3 
04:32 E/DeviceMonitor: Connection attempts: 4 
04:33 E/DeviceMonitor: Connection attempts: 5 
04:34 E/DeviceMonitor: Connection attempts: 6 
+0

lorsque vous essayez DDMS autonome, avez-vous Eclipse DDMS courir ainsi? (si c'est le cas, éteignez éclipse d'abord). ddms ne se connecte pas à votre appareil ou ne se connecte pas au processus de votre application? voyez-vous l'appareil dans la liste des appareils? (ou d'où vois-tu qu'il essaie de se connecter?) –

+0

sur quel système je cours? les fenêtres? linux? ... – Sephy

+0

ddms de la ligne de commande ne voit aucun périphérique. Elcipse ne fonctionne pas. J'ai également redémarré le serveur adb. – RichieHH

Répondre

7

La solution est, dans Debian, de forcer Java à utiliser IPv4.

/etc/sysctl.d/bindv6only.conf

net.ipv6.bindv6only = 0 

Et puis de bash

sudo invoke-rc.d procps restart 

Voir aussi la Debian bug report pour plus de détails.

+0

C'est génial - j'ai eu le même problème avec amd64 squeeze + IcedTea java, ddms ne parvenant pas à se connecter à la fois lancé manuellement * et * en éclipse (indigo 3.7). Maintenant, ça fonctionne correctement. Par ailleurs, j'ai dû utiliser IcedTea ou bien l'android sdk échoue aux requêtes http ("réseau non trouvé") .. mais peut-être que je devrais réessayer aussi, avec une nouvelle configuration .. – redShadow

0

J'ai eu ce problème aussi. J'ai toujours trouvé que si vous fermez Eclipse avant de connecter le périphérique, d'exécuter un émulateur ou de démarrer ddms, tout fonctionne correctement.

Je pense que le SDK Eclipse brouille la connexion et empêche les ddms d'accéder au périphérique ou à l'émulateur.

+1

eclipse n'est pas en cours d'exécution. – RichieHH

6

L'ajout de cette ligne quelque part eclipse.ini m'a aidé:

-Djava.net.preferIPv4Stack=true 

Le nom de la directive parle pour lui-même.