développement Android: DDMS de ligne de commande ne pas voir les périphériques
Question
===============================
* * RESOLU: voir réponse ci-dessous
Je ne veux pas utiliser Eclipse.
A partir de la ligne de commande:
Un émulateur est en cours d'exécution. serveur adb est en cours d'exécution. « Périphériques ADB » listes correctement et je peux voir mon exemple sur une AVD dans la sortie.
Cependant, quand je commence manuellement DDMS à partir de la ligne de commande, il ne cesse d'essayer de se connecter. Je ne trouve pas de problèmes de configuration de connexion.
Toutes les suggestions (autres que "l'utilisation Eclipse") la bienvenue!
(oui, cela fonctionne à partir d'Eclipse et MNP) 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 de Debian chevronnés 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
La solution
La solution est, dans Debian, à java de force à utiliser IPv4.
/etc/sysctl.d/bindv6only.conf
net.ipv6.bindv6only = 0
Et puis de bash
sudo invoke-rc.d procps restart
Voir aussi rapport de bogue Debian pour plus de détails .
Autres conseils
L'ajout de cette part de ligne dans eclipse.ini m'a aidé:
-Djava.net.preferIPv4Stack=true
Le nom de directive parle pour lui-même.
J'ai eu ce problème aussi. Je l'ai toujours trouvé que si vous éclipser près avant de connecter l'appareil, l'exécution d'un émulateur, ou à partir DDMS, tout fonctionne très bien.
Je pense que le SDK Eclipse porcs de la connexion et empêche DDMS d'accéder à l'appareil ou un émulateur.
L'IPv4 n'a pas fonctionné pour moi, mais de brancher l'appareil sur un port USB résolu ce problème (via appareil Android ne se présente pas DDMS)