Impossible d'ouvrir le port de débogage: java.net.SocketException " Socket closed"
J'utilise Android Studio, avec plusieurs saveurs en utilisant Gradle, chacun avec un type de débogage et de publication, organisé comme décrit ici, sur la moitié inférieure .Quand j'essaie de démarrer le débogueur, j'obtiens cette erreur:
Error running androidRecover [installAppDebug]: Unable to open debugger port : java.net.SocketException "Socket closed
je suis aussi incapable d'attacher le débogueur mon appareil une fois qu'il est en cours d'exécution (il n'affiche que le nom de mon téléphone, pas l'application).
tous les 3 parfums installent sur mon téléphone très bien. Je ne peux pas le faire pour permettez-moi de les déboguer. J'ai également testé la fixation du débogueur sur une tablette Nexus, et j'ai obtenu le même résultat.
ce N'est pas Gradle spécifiquement comme un tout parce que je peux exécuter d'autres applications Gradle-basées et attacher le débogueur juste très bien alors je me demande si c'est quelque chose avec la façon dont j'ai mis en place mon projet Gradle et les paramètres.
voici ma version.gradle:
apply plugin: 'android'
apply from: 'signing.gradle'
android {
compileSdkVersion 19
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile
('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
flav1 {
packageName "com.ex.flav1"
versionCode 32
versionName "1.0.5"
signingConfig signingConfigs.flav1
}
flav2 {
packageName "com.ex.flav2"
versionCode 33
versionName "1.0.6"
signingConfig signingConfigs.flav2
}
flav3 {
packageName "com.ex.flav3"
versionCode 27
versionName "1.0.0"
signingConfig signingConfigs.flav3
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/httpmime-4.2.5.jar')
}
je n'ai vraiment aucune idée de ce que d'autre à essayer. Android Studio est complètement up-to-date. J'ai redémarré le studio Android, mon téléphone et mon ordinateur.
Aussi, la semaine dernière j'ai eu ce problème, mais c'est un socket spécifique qui a été bloqué, essayez d'exécuter l'émulateur et mon téléphone en même temps. J'ai aussi remarqué que j'avais plusieurs processus Gradle en cours, parce que ça ne les tuait pas tout seul, ce qui m'a souvent forcé à tuer Android Studio pour les tuer. Une fois que ça a été réparé, ça marchait de temps en temps.
faites-moi savoir si vous besoin d'autres infos.
Merci, Devin 151950920"
Edit je sais enfin pourquoi la réponse de @hasanaydogar fonctionne et pourquoi elle aurait probablement résolu mon problème si nous l'avions su alors. Voir mon 2ème commentaire pour savoir pourquoi, mais en bref, vous devez sélectionner dans cette liste déroulante le nom qui correspond au répertoire racine de votre application.
5 réponses
il suffit de cliquer sur le bouton (côté gauche le bouton RUN).
Sélectionnez Android. Puis Sur Exécuter.
il se connectera à votre appareil.
et n'oubliez pas de changer la variante de construction
je comprends enfin pourquoi j'ai eu cette erreur donc je vais expliquer comment je Debug
maintenant. Notez que j'utilise Gradle
(construire plusieurs apk en utilisant le même code), ce qui pourrait influencer la façon dont vous utilisez la troisième partie de cette réponse.
Pour que ça marche, dans la liste déroulante à côté du debug (icône en #1) et de l'exécution des boutons dans la barre d'outils supérieure, vous devez avoir l'un sélectionné avec l'icône suivante, parce que c'est le nom de la racine répertoire de votre application où vit tout votre code:
- pour démarrer le débogage depuis le début, je lance l'application en mode
Debug
depuis le début, en utilisant ce bouton dans votre barre d'outils:
- pour attacher le débogueur à l'application quand elle est déjà en cours d'exécution comme @scottyab mentionné, je clique sur le
Attach Debugger
bouton dans votre barre d'outils:
- pour lancer la version de sortie de mon application en mode de débogage, j'ai commencé à changer mes chaînes dans la version
Debug
destrings.xml
dans le chemin du fichiermyApp/src/appNameDebug(verses appNameRelease)/res/values/strings.xml
, plus facilement vu ici, sur la moitié inférieure . Quand je dis changement, je veux vraiment dire que j'ai deux versions de toutes les chaînes (3 dans mon cas) nécessaires pour changer d'utiliser le serveur de débogage à l'utilisation du serveur de publication. Il se peut qu'il ne soit pas complètement casher, mais il faut environ 5 secondes pour aller dans le fichier, et maintenir Cmd+/ et décommenter et commenter toutes les lignes appropriées.
ma version Release
est juste là pour quand je suis prêt à construire un apk pour la libération.
faire les choses de cette façon a éliminé cette erreur surgissant plus. Je pense que la version Release
n'est pas faite pour le débogage, et je n'ai pas trouvé de moyen facile pour activer les indicateurs de débogage en mode Release
.
j'ai réussi à obtenir ce fonctionnement en attachant le débogueur après une construction voir incapable d'ouvrir le port de débogueur : java.net.SocketException "Socket closed "
j'ai réussi à me débarrasser de ce problème en tuant et en relançant le processus de la BAsD,j'espère que cela aidera:]