J'utilise Android Studio, avec plusieurs versions utilisant Gradle, chacune avec un type Debug and Release, organisée comme décrit ici, dans la moitié inférieure . Lorsque j'essaie pour démarrer le débogueur, j'obtiens cette erreur:
Error running androidRecover [installAppDebug]: Unable to open debugger port : Java.net.SocketException "Socket closed
Je ne parviens pas non plus à attacher le débogueur à mon appareil une fois qu'il fonctionne (il n'affiche que le nom de mon téléphone, pas l'application).
Les 3 saveurs s'installent très bien sur mon téléphone. Je ne peux tout simplement pas me permettre de les déboguer. J'ai également testé la connexion du débogueur sur une tablette Nexus, et j'ai obtenu le même résultat.
Ce n'est pas Gradle spécifiquement dans son ensemble car je peux exécuter d'autres applications basées sur Gradle et attacher le débogueur très bien, donc je me demande si c'est quelque chose avec la façon dont j'ai configuré mon projet Gradle et mes paramètres.
Voici mon build.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 ne sais vraiment pas quoi essayer d'autre. Android Studio est complètement à jour. J'ai redémarré Android Studio, mon téléphone et mon ordinateur).
De plus, la semaine dernière, j'avais ce problème, mais c'était une prise spécifique qui était bloquée, d'essayer d'exécuter l'émulateur et mon téléphone en même temps. J'ai également remarqué que plusieurs processus Gradle étaient en cours d'exécution, car il ne les tuait pas tout seul, que je devais souvent tuer Android Studio pour les tuer. Une fois cela corrigé, cela fonctionnait par intermittence.
Faites-moi savoir si vous avez besoin d'autres informations.
Merci, Devin
Edit Je sais enfin pourquoi la réponse de @ hasanaydogar fonctionne et pourquoi cela aurait probablement résolu mon problème si nous l'avions connu à ce moment-là. Voir mon 2e commentaire à ce sujet 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.
Cliquez simplement sur le bouton (à gauche le bouton RUN).
Sélectionnez Android. Ensuite, exécutez.
Il se connectera à votre appareil.
Et n'oubliez pas de changer la variante de construction
Je comprends enfin pourquoi j'obtiens cette erreur, je vais donc 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 cela fonctionne, dans la liste déroulante à côté du débogage (icône n ° 1) et des boutons d'exécution dans la barre d'outils supérieure, vous devez avoir celui sélectionné avec l'icône suivante à côté car c'est le nom du répertoire racine de votre application où vit tout votre code:
Debug
depuis le début, en utilisant ce bouton dans votre barre d'outils:Attach Debugger
Dans votre barre d'outils:Debug
de strings.xml
Dans le chemin du fichier myApp/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 passer de l'utilisation du serveur de débogage à l'utilisation du serveur de publication. Il n'est peut-être pas complètement casher, mais il faut environ 5 secondes pour parcourir le fichier, et maintenez Cmd +/et décommentez et commentez toutes les lignes appropriées.Ma version Release
est juste là quand je suis prêt à construire une apk pour la sortie.
Faire les choses de cette manière a éliminé cette erreur. Je pense que la version Release
n'est tout simplement pas faite pour le débogage, et je n'ai pas trouvé de moyen facile d'activer les indicateurs de débogage en mode Release
.
J'ai réussi à faire fonctionner cela en attachant le débogueur après une construction voir Impossible d'ouvrir le port du débogueur: Java.net.SocketException "Socket fermé"
J'ai réussi à me débarrasser de ce problème en tuant et en redémarrant le processus adb, j'espère que cela aiderait:]