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).
- ¿Cómo puedo utilizar la salida en logcat después de una señal fatal 11 para averiguar dónde estoy recibiendo el error en el código nativo android?
- IBM Worklight - ¿Cómo habilito la depuración de WebView en Android?
- Monitorizar todos los eventos de dispositivos Android de forma remota
- Error de instalación INSTALL_FAILED_ACWF_INCOMPATIBLE
- No se puede abrir el puerto del depurador: java.net.ConnectException "Conexión rechazada"
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.
- Pregunta sobre la seguridad del depurador
- Cómo ocultar OpenGLRenderer en depuración (android studio)
- No se puede acceder a algunas líneas que depuran la aplicación de Android
- Cómo depurar llamadas http en dispositivos Android?
- C / C ++ printfs - ¿Dónde aparece en un código nativo de Android?
- Depuración de Kernel de Android
- Android Studio 2.2.1: Depuración lenta
- "'Esto' no está disponible" en las ventanas de depuración de Android Studio
Simplemente haga clic en el botón (lado izquierdo del botón RUN).
Selecciona Android. Entonces corre.
Se conectará a su dispositivo.
Y no te olvides de cambiar la variante de construcción
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:
- 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:
- 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:
- 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
destrings.xml
en la ruta de acceso de archivomyApp/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
Cambiar el tipo de depuración a nativo
- ¿Qué es el archivo boot.img en android?
- ¿Cómo envía una Notificación Firebase a todos los dispositivos a través de CURL?