No se puede abrir el puerto del depurador: java.net.SocketException "Socket closed"

Estoy usando Android Studio, con varios sabores usando Gradle, cada uno con un tipo de depuración y lanzamiento, organizado como se describe aquí, en la mitad inferior . Cuando intento iniciar el depurador, obtengo este error:

Error running androidRecover [installAppDebug]: Unable to open debugger port : java.net.SocketException "Socket closed 

También no puedo adjuntar el depurador a mi dispositivo una vez que se está ejecutando (sólo muestra el nombre de mi teléfono, no la aplicación).

Todos los 3 sabores instalan en mi teléfono apenas muy bien. Simplemente no puedo conseguir que me dejen depurarlos. También probé conectar el depurador en una tableta de Nexus, y conseguí el mismo resultado.

No es Gradle específicamente como un todo porque puedo ejecutar otras aplicaciones basadas en Gradle y adjuntar el depurador bien, así que me pregunto si es algo con la forma en que he configurado mi proyecto y la configuración de Gradle.

Aquí está mi 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') } 

Realmente no tengo ni idea de qué más intentar. Android Studio está completamente actualizado. He reiniciado Android Studio, mi teléfono y mi computadora.

Además, la semana pasada estaba teniendo este problema, pero era un socket específico que estaba bloqueado, de intentar ejecutar el emulador y mi teléfono al mismo tiempo. También noté que tenía varios procesos de Gradle en ejecución, porque no los estaba matando por su cuenta, que a menudo tenía que matar a Android Studio para matarlos. Una vez que se arregló, estaba funcionando de vez en cuando.

Déjeme saber si usted necesita cualquier otra información.

Gracias, Devin

Edición Finalmente sé por qué la respuesta de @ hasanaydogar funciona y por qué probablemente habría resuelto mi problema si lo hubiéramos sabido entonces. Vea mi segundo comentario sobre ello para saber por qué, pero en resumen, tiene que seleccionar en ese menú desplegable el nombre que coincida con el directorio raíz de su aplicación.

Simplemente haga clic en el botón (lado izquierdo del botón RUN).

Introduzca aquí la descripción de la imagen

Selecciona Android. Entonces corre.

Se conectará a su dispositivo.

Y no te olvides de cambiar la variante de construcción

Introduzca aquí la descripción de la imagen

Finalmente entiendo por qué estaba recibiendo ese error así que voy a explicar cómo Debug ahora. Tenga en cuenta que utilizo Gradle (compilar múltiples apk utilizando el mismo código), lo que podría influir en algunos cómo se utiliza la tercera parte de esta respuesta.

Para que funcionen, en el menú desplegable junto a los botones de depuración (icono en # 1) y ejecutar en la barra de herramientas superior, debe seleccionar uno con el siguiente icono junto a él porque ese es el nombre del directorio raíz de su Donde vive todo el código:

Introduzca aquí la descripción de la imagen

  1. Para comenzar a depurar desde el principio, ejecuto la aplicación en modo de Debug desde el principio, usando este botón en tu barra de herramientas:

Introduzca la descripción de la imagen aquí!

  1. Para adjuntar el depurador a la aplicación cuando ya se está ejecutando como @scottyab mencionado, haga clic en el botón Attach Debugger en su barra de herramientas:

Introduzca aquí la descripción de la imagen

  1. Para ejecutar la versión de lanzamiento de mi aplicación en modo de depuración, he empezado a cambiar mis cadenas en la versión de Debug de strings.xml en la ruta de acceso de archivo myApp/src/appNameDebug(verses appNameRelease)/res/values/strings.xml , more Fácilmente visto aquí, en la mitad inferior . Cuando digo cambio, realmente quiero decir que tengo dos versiones de todas las cadenas (3 en mi caso) necesario para cambiar de usar el servidor de depuración a utilizar el servidor de liberación. Puede que no sea completamente kosher, pero se tarda unos 5 segundos en pasar el archivo y mantener pulsado Cmd + / y descomentar y comentar todas las líneas apropiadas.

Mi versión de Release es sólo para cuando estoy listo para construir un apk para la liberación.

Hacer las cosas de esta manera ha eliminado ese error apareciendo más. Creo que la versión Release no está hecha para la depuración, y no he encontrado una forma fácil de activar los indicadores de depuración cuando se está en modo Release .

Me las arreglé para conseguir este trabajo adjuntando el depurador después de una compilación ver Unable to open debugger port: java.net.SocketException "Socket closed"

Me las arreglé para deshacerse de este problema por matar y reiniciar el proceso de adb, espero que esto ayudará:]

He resuelto esta cuestión con referencia a la siguiente respuesta

El botón "Seleccionar ejecución / configuración de depuración" en android studio 2.3.2

Introduzca aquí la descripción de la imagen

Cambiar el tipo de depuración a nativo

Introduzca aquí la descripción de la imagen

  • No se muestran trazas de registro y bloqueo de bloqueo en Android Studio
  • Problemas de depuración de Android con eclipse
  • Android Studio 1.2 versión beta se bloquea en la depuración
  • Desinstalar la aplicación de Android antes de cada depuración
  • No se puede depurar el código nativo de C ++ para Android en Eclipse en Windows
  • Intellij Idea no encuentra mi dispositivo Android
  • GetBufferLock ha agotado el tiempo de espera para el subproceso
  • ¿Cómo puedo saber si estoy en el depurador en android?
  • Cuando se depura en el dispositivo con ART activado, la aplicación android es lenta
  • ignorando el segundo depurador y la caída del servicio en android
  • El depurador de Eclipse salta a la declaración de devolución incorrecta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.