Impossible d'ouvrir le port de débogage: java.net.SocketException " Socket closed"

je reçois cette erreur en essayant de déboguer une application Android sur Android Studio (v. 0.4.4):

Error running <appname> [assembleDebug]: 
Unable to open debugger port : java.net.SocketException "Socket closed"

l'app compile, et peut être poussé au téléphone en utilisant adb. Il n'y a aucun problème avec adb; je peux installer/surveiller logcat etc parfaitement. Je peux charger un autre projet et le déboguer très bien. Je reviens sur celle-ci et elle est toujours cassée. Donc cela semble exclure un problème avec le pc( en fait une VM Linux tournant sous windows), Le studio Android installer etc. J'ai redémarré ce vm et le PC hôte.

j'ai eu ce problème l'année dernière et je l'ai" corrigé " puis en désinstallant Eclipse (je pensais que peut-être il essayait d'obtenir le même socket).

j'ai passé du temps à googler et à essayer des suggestions, mais elles ne font aucune différence.

le problème s'est produit à peu près au moment où j'ai produit une version signée et programmée. Jusqu'alors j'avais seulement été en cours d'exécution de la debug. Cependant, je crois que tout ce que j'ai fait pour créer cette compilation de version était d'éditer la compilation.gradle et configurer Android Studio pour signer automatiquement apks. J'ai depuis inversé les changements à construire.gradle mais le problème demeure.

Je ne vois aucune erreur pertinente dans les fichiers de logs Android Studio; c'est comme si cette exception était capturée, signalée à l'écran mais non enregistrée nulle part.

espérons que quelqu'un lisant ceci puisse suggérer quelques choses ici pour le changement que j'ai négligé.

48
demandé sur Chor Leong 2014-02-14 01:48:32

10 réponses

sur le bureau D'Android Studio, cliquez sur le bouton" Select Run/Debug Configuration " (une icône android), vous devriez pouvoir sélectionner la bonne option.

44
répondu Chor Leong 2014-02-17 11:37:01

j'ai eu cette erreur de" Socket closed " pendant plusieurs semaines et ça me rendait un peu fou. Aujourd'hui, j'ai découvert que bien que le lancement via l'icône de débogage me donne toujours un "Socket clos" si j'attache le débogueur après cela, cela fonctionne (dans screenshot). Espérons qu'il sauve quelqu'un d'autre temps.

Screenshot highlighting the attach debugger icon

31
répondu scottyab 2014-07-01 16:22:27

j'ai pu corriger ce problème en sélectionnant la configuration" app". Dans la capture d'écran ci-dessus le tirer vers le bas à gauche du bouton vous permet de sélectionner la configuration.Sélectionnez un sans les crochets.

25
répondu Steven Szczuka 2014-10-01 15:51:25

j'ai été faire cette erreur sur linux, et le problème était que l'autre processus précédent ont pris le port et accroché. Donc, la solution est un netstat pour localiser le processus bloquant le port, puis tuer ce processus, ou vous pouvez redémarrer la machine.

4
répondu Rogelio 2016-11-07 10:55:20

pour éviter ce problème et effectivement lancer à partir D'Android Studio, j'ai dû changer explicitement la variante de construction dans laquelle j'opérais (via le panneau qui apparaît lors de la sélection de "construire des variantes" sur le bord gauche). Puis, en appuyant sur le bouton debug en haut pour ma configuration D'application Android (sélectionnée via le menu déroulant à la gauche des icônes Run/Debug), il déploierait correctement le mode de construction variante j'étais. (Ce serait bien si je pouvais mettre en place différentes Android Configurations de l'application pour déployer différents types de construction à partir du menu déroulant au lieu d'avoir à changer les variantes plus manuellement, mais je ne vois pas comment pour le moment.)

enter image description here

aussi dans votre section buildTypes dans votre build.gradle file, vous voulez probablement debuggable true , sinon votre processus n'apparaîtra pas dans la boîte de dialogue si vous essayez d'attacher manuellement le débogueur.

3
répondu qix 2014-10-09 19:31:11

j'ai rencontré le même comportement, les solutions ci-dessus ne fonctionnait pas pour moi, mais j'ai un peu d'un cas de coin: mon application étend android.App.Application. Ce que j'ai trouvé fonctionne pour moi est d'éditer la configuration run/debug ("Modifier les Configurations...") et sélectionnez "Ne pas lancer l'Activité" au lieu de "Lancer l'Activité par défaut".

2
répondu cmarcelk 2015-05-23 14:54:20

j'ai rencontré ce problème tout à l'heure, solution simple: si vous avez plusieurs instances en cours d'exécution, assurez-vous que votre port JMX est différent de celui de la configuration. se référer à L'Image

2
répondu friedwm 2017-10-24 10:19:10

j'ai eu cette erreur parce que j'avais l'option" Type de Test "dans la boîte de dialogue" Exécuter/déboguer les Configurations "réglée sur" tout dans le paquet "plutôt que"Classe de Test". Quand je l'ai mis sur "Test Class", le débogueur a fonctionné parfaitement.

enter image description here

1
répondu rothloup 2017-10-03 02:04:40

j'ai eu un problème similaire avec un programme Java. J'ai redémarré l'IDE et changé le numéro de port JMX. Puis le programme a fonctionné en mode debug sans aucun problème.

1
répondu user3387386 2017-11-08 12:00:22

assurez-vous que votre téléphone Android est bien connecté.

-2
répondu Kai Wang 2017-03-07 20:40:53