Qué causó IOException y Broken pipe

Mi AVD es de API 15, no sé por qué, pero el siguiente mensaje sigue apareciendo cada vez que ejecuto una aplicación en el emulador. No parece haber causado ningún problema excepto el mensaje de error en la consola.

[2012-06-17 00:03:26 - ddmlib] Broken pipe java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcher.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:122) at sun.nio.ch.IOUtil.write(IOUtil.java:93) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:352) at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) at com.android.ddmlib.Client.sendAndConsume(Client.java:575) at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421) at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:837) at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:805) at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:765) at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652) at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44) at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580) 

¿Qué podría ser la causa?

Si alguien utiliza tanto eclipse como android studio juntos, entonces este error será lanzado por eclipse. Así que incluso si selecciona el dispositivo a través de DDMS, su va a lanzar este error.

La vieja pregunta, pero sigue siendo relevante y no vi ninguna otra respuesta con esta información:

Para mí sucedió cuando otro Eclipse se estaba ejecutando al mismo tiempo, con DDMS compitiendo en el mismo socket que el eclipse tratando de conectarse al dispositivo Android.

La solución fue cerrar el otro Eclipse. Espero que ayude a alguien.

Actualización : Probablemente una mejor solución es editar el puerto DDMS del otro eclipse a algo que no utilices. Así que está fuera de la carrera.

Esto me sucedió cuando tuve tanto monitor y Eclipse ADT abierto. Intente cerrar todas las cosas relacionadas con Android y luego haga un adb kill-server && sleep 5 && adb devices y luego inicie nuevamente su herramienta (Eclipse / Ant / AS).

'Broken pipe' significa que ha escrito datos en una conexión que ya había sido cerrada por el par. Solución: no. Es esencialmente un error de protocolo de aplicación.

Supongo que el cliente (Eclipse) se comunica con el servidor (su emulador) por el protocolo Pipe (este protocolo es bien saber para comunicar 2 proceso en la misma máquina).

A veces puede romperse el canal de comunicación. (Hay 100 razones posibles para eso)

Para resolver este problema: reinicie el emulador (AVD). Tal vez tendrá que esperar un momento (~ 1min?) Para que Eclipse pueda restaurar el canal Pipe y su Log Cat volverá. De lo contrario, reinicie Eclipse y el emulador para eliminar este error.

La razón más común que he tenido para un "tubo roto" es que una máquina (de un par que comunica a través del zócalo) ha cerrado su extremo del zócalo antes de que la comunicación fuera completa. Aproximadamente la mitad de ellos se debieron a que el programa de comunicación en ese socket había terminado.

Si el programa que envía bytes los envía e inmediatamente apaga el zócalo o se termina por sí mismo, es posible que el socket deje de funcionar antes de que los bytes hayan sido transmitidos y leídos.

Trate de poner pausas en cualquier lugar que está cerrando el zócalo y antes de permitir que el programa termine para ver si eso ayuda.

FYI: "pipe" y "socket" son términos que se utilizan indistintamente a veces.

Me di cuenta que esto sucede con frecuencia (cada 5 minutos o así) recientemente. La frecuencia parecía aumentar si tenía un dispositivo físico y un emulador en funcionamiento.

Detener el emulador y sólo usar el dispositivo físico para la depuración lo impedía que ocurriera tan a menudo – ahora solo lo veo una o dos veces al día.

Para resolverlo cuando sucede, no es necesario cerrar el emulador o reiniciar el dispositivo – convertir el modo de depuración USB de encendido y apagado debe hacer que aparezca de nuevo bajo adb.

He estado luchando con este problema durante mucho tiempo. Siempre que quería depurar la aplicación móvil android con la herramienta de depuración de Chrome me desconectaron cada 5 minutos.

Me enteré de que la causa de esto es de hecho otro proceso de conexión con el teléfono móvil que se está ejecutando detrás en el sistema operativo que rompe la comunicación entre el teléfono móvil y el sistema operativo.

Yo uso Macbook Pro y estaba ejecutando IntelliJ IDEA depurador + Android File Transfer (no sabía que esto estaba corriendo detrás) y la herramienta de depuración de Chrome. Cuando cerré el proceso de transferencia de archivos de Android con la herramienta "Monitor de actividad" todo funcionaba bien, no había más desconexión entre el teléfono móvil y el sistema operativo. Mi sugerencia es comprobar siempre si está ejecutando otro proceso de Android.

Yo estaba usando Android Studio y DDMS. El cierre de DDMS arregló el problema para mí.

Reiniciar Android Studio no tuvo ningún impacto.

En caso de que alguien más no encontrar ninguna solución a esto. En eclipses Neon, esto sucedió cuando tenía dos frascos DDMS en el directorio de plugins. Tuve el andmore.ddms.jar y com.android_ddms.jar. Al eliminar uno se resuelve el error, supongo que ambos compiten para conectarse al mismo puerto.

Una excepción de "Broken pipe" se produce cuando una conexión de socket está cerrada por el cliente en el otro lado. La mayoría de las veces esto no es nada de qué preocuparse.

En mi caso, elimino el .android en mi directorio personal. Está bien.

  • Emulador de Android se inicia pero Eclipse no lo reconoce
  • No hay AVD instalado
  • Emulador de Android no se inicia
  • AVD se congela después de algún tiempo
  • Cómo habilitar la compatibilidad con varios usuarios en AVD 4.2
  • ¿Cuál es el comando para listar los avdnames disponibles
  • Versión de Android Studio para Mac OSX 10.7.5
  • Repositorio de dispositivos virtuales de Android
  • ¿Cómo utilizar la nueva GPU acelerado avd?
  • Diferencia entre las API de destino de Google y el objetivo de Android
  • Android: Cómo obtener una biblioteca de usuario en un AVD en Eclipse
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.