Error al instalar debido a Timeout en el emulador

Al intentar instalar un .apk desde Eclipse, ya sea en un emulador de Android o en un dispositivo físico (a través de USB), aparece el error "Fallo al instalar * .apk en el dispositivo '*': tiempo de espera". El .apk no se encuentra en el emulador ni en el dispositivo físico (Samsung Galaxy S2, rooteado).

Si evito eclipse, y solo uso la línea de comandos, tampoco puedo instalar un .apk.

¿Por qué un nuevo post en esto?

Hay varias otras publicaciones de stackoverflow que hacen referencia al error "Error al instalar ...". He creado una nueva publicación por varias razones:

La mayoría de las otras publicaciones no están detalladas.El destacado puesto relevante,Error de Android: no se pudo instalar * .apk en el dispositivo *: tiempo de espera, para el póster original, se aplica solo a las conexiones de dispositivos físicos. Así que es un caso diferente, aunque con síntomas similares.Todas las soluciones candidatas en ese post, y varias otras, lo he intentado. Estos se enumeran a continuación en "Soluciones candidatas que he probado".

Esta publicación es larga, ya que los pasos que he tomado son largos, como lo justifica el error. Si no quiere leer, o al menos escanear, esta publicación no comente.

Mi entorno

HOST OS: Windows XP SP3

JAVA: Java SDK versión 1.6.0_32

VARIABLES DEL ENTORNO DE WINDOWS:

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_33;

PATH=...;%JAVA_HOME%\bin\;C:\android\android-sdk\tools;C:\android\android-sdk\platform-tools\;...;C:\Program Files\apache-ant-1.8.2\bin;...;

IDE: Eclipse (clásico instalado) Indigo. Versión 3.7.2

SDK DE ANDROID

Android SDK Tools Revision: 20. (Probado principalmente con la revisión 19).Plataforma Android SDK-herramientas: 11.Versión del complemento ADT ("Android Development Toolkit", Eclipse Plugin): 20.0.0.v201206010423-369331 (también con la versión anterior 18.0.0.v201203301501-306762).Plataforma dirigida por su proyecto y Versión de la plataforma que se ejecuta en el emulador. Probé cada uno de ellosAndroid 4.0.3 (API 15)Android 2.2 (API 8)Andorid 2.1 (API 7)

MÓVIL: Samsung Galaxy S2 con Android Ice Cream Sandwhich (ICS) 4.0.3

ANT: 1.8.2

Pasos por los que paso para producir los errores.

Usando Eclipse para intentar instalar un .apk en el emulador:

Abrir eclipse (que carga mi espacio de trabajo con una única aplicación de Android).Ejecutar mi aplicación de Android utilizando una configuración de ejecución previamente configurada.Se inicia el "Selector de dispositivo Android" (he configurado mi configuración de Ejecución para que se inicie manualmente).En el Selector de dispositivos Android, selecciono mi avd (orientado a Android 2.2) y hago clic en Aceptar.El emulador se abre con "5554: jlbavd2_2". Mi nombre de AVD es "jlbavd2_2".Dejo el emulador abierto. En Eclipse abro la vista DDMS. En el panel "Dispositivos", hago clic en el triángulo blanco y selecciono "Restablecer adb".

En la consola de Eclipse, vista de Android, obtengo

[2012-06-19 19:20:52 - MyApp] Starting full Post Compiler.
[2012-06-19 19:20:52 - MyApp] ------------------------------
[2012-06-19 19:20:52 - MyApp] Android Launch!
[2012-06-19 19:20:52 - MyApp] adb is running normally.
[2012-06-19 19:20:52 - MyApp] Performing au.com.myorg.myapp.MyAppActivity activity launch
[2012-06-19 19:20:52 - MyApp] Refreshing resource folders.
[2012-06-19 19:20:52 - MyApp] Starting incremental Pre Compiler: Checking resource changes.
[2012-06-19 19:20:52 - MyApp] Nothing to pre compile!
[2012-06-19 19:20:53 - MyApp] Starting incremental Package build: Checking resource changes.
[2012-06-19 19:20:53 - MyApp] Skipping over Post Compiler.
[2012-06-19 19:20:59 - MyApp] Launching a new emulator with Virtual Device 'jlbavd'
[2012-06-19 19:22:29 - MyApp] New emulator found: emulator-5554
[2012-06-19 19:22:29 - MyApp] Waiting for HOME ('android.process.acore') to be launched...
[2012-06-19 19:22:44 - MyApp] HOME is up on device 'emulator-5554'
[2012-06-19 19:22:44 - MyApp] Uploading MyApp.apk onto device 'emulator-5554'
[2012-06-19 19:22:49 - MyApp] Failed to install MyApp.apk on device 'emulator-5554': timeout
[2012-06-19 19:22:49 - MyApp] Launch canceled!

En la consola de Eclipse, salida DDMS, obtengo:

...
[2012-06-19 19:22:44 - ddm-hello] handling HELO
[2012-06-19 19:22:44 - ddm-hello] HELO: v=1, pid=150, vm='Dalvik v1.2.0', app='android.process.acore'
[2012-06-19 19:22:44 - MyApp.apk] Uploading MyApp.apk onto device 'emulator-5554'
[2012-06-19 19:22:44 - Device] Uploading file onto device 'emulator-5554'
[2012-06-19 19:22:49 - ddms] write: timeout
[2012-06-19 19:22:49 - Device] Error during Sync: timeout.
[2012-06-19 19:22:49 - ddms] Removing req 0x4000002d from set

A veces (tal vez hago pasos ligeramente diferentes) me sale:

[2012-06-16 14:20:02 - MyFirstApp02] Starting full Post Compiler.
[2012-06-16 14:20:02 - MyFirstApp02] ------------------------------
[2012-06-16 14:20:02 - MyFirstApp02] Android Launch!
[2012-06-16 14:20:02 - MyFirstApp02] adb is running normally.
[2012-06-16 14:20:02 - MyFirstApp02] Performing au.com.myorg.MyFirstApp02Activity activity launch
[2012-06-16 14:20:08 - MyFirstApp02] Launching a new emulator with Virtual Device 'jlbavd2_2'
[2012-06-16 14:20:17 - Emulator] bind: Unknown error
[2012-06-16 14:20:17 - MyFirstApp02] New emulator found: emulator-5556
[2012-06-16 14:20:17 - MyFirstApp02] Waiting for HOME ('android.process.acore') to be launched...
[2012-06-16 14:20:38 - MyFirstApp02] HOME is up on device 'emulator-5556'
[2012-06-16 14:20:38 - MyFirstApp02] Uploading MyFirstApp02.apk onto device 'emulator-5556'
[2012-06-16 14:20:50 - MyFirstApp02] Failed to install MyFirstApp02.apk on device 'emulator-5556': timeout
[2012-06-16 14:20:50 - MyFirstApp02] Launch canceled!

Tenga en cuenta la "vinculación: error desconocido". A veces este error ocurre, a veces no es así.

Si desconecto mi cable Ethernet a mi enrutador de hardware, obtengo lo siguiente:

[2012-06-19 23:27:29 - MyApp] Android Launch!
[2012-06-19 23:27:29 - MyApp] adb is running normally.
[2012-06-19 23:27:29 - MyApp] Performing au.com.softmake.myapp.MyAppActivity activity launch
[2012-06-19 23:27:29 - MyApp] Refreshing resource folders.
[2012-06-19 23:27:29 - MyApp] Starting incremental Pre Compiler: Checking resource changes.
[2012-06-19 23:27:29 - MyApp] Nothing to pre compile!
[2012-06-19 23:27:33 - MyApp] Launching a new emulator with Virtual Device 'jlbavd'
[2012-06-19 23:27:40 - Emulator] Warning: No DNS servers found
[2012-06-19 23:27:44 - Emulator] emulator: emulator window was out of view and was recentered
[2012-06-19 23:27:44 - Emulator]
[2012-06-19 23:28:29 - MyApp] New emulator found: emulator-5554
[2012-06-19 23:28:29 - MyApp] Waiting for HOME ('android.process.acore') to be launched...
[2012-06-19 23:28:36 - MyApp] HOME is up on device 'emulator-5554'
[2012-06-19 23:28:36 - MyApp] Uploading MyApp.apk onto device 'emulator-5554'
[2012-06-19 23:28:42 - MyApp] Failed to install MyApp.apk on device 'emulator-5554': timeout
[2012-06-19 23:28:42 - MyApp] Launch canceled!

Tenga en cuenta la "Advertencia: No se encontraron servidores DNS"

Utilizando Eclipse para intentar instalar un .apk en un dispositivo físico (Samsung Galaxy S2 rooteado. 4.0.3 con la depuración de USB habilitada), y luego de seguir los pasos similares a los anteriores, accedo a la consola de Eclipse, salida de Android:

[2012-06-15 22:40:34 - MyFirstApp] Starting full Post Compiler.
[2012-06-15 22:40:34 - MyFirstApp] ------------------------------
[2012-06-15 22:40:34 - MyFirstApp] Android Launch!
[2012-06-15 22:40:34 - MyFirstApp] adb is running normally.
[2012-06-15 22:40:34 - MyFirstApp] Performing
    au.com.myorg.myfirstapp.MyFirstAppActivity activity launch
[2012-06-15 22:40:39 - MyFirstApp] Uploading MyFirstApp.apk onto device '0019adf659f24e'
[2012-06-15 22:40:51 - MyFirstApp] Failed to install MyFirstApp.apk on device '0019adf659f24e': timeout
[2012-06-15 22:40:51 - MyFirstApp] Launch canceled!

El mismo tipo de error que al intentar instalar en el emulador.

Cuando utilizo solo la línea de comando, y evitando Eclipse, paso por los siguientes pasos:

Abra un indicador de comandos de Windows en mi directorio de trabajo (estoy usando C: \ Data \ Sda \ Code \ Mobile \ Android \ Illustrations> ").

objetivos de la lista de Android.

Obtengo mi id de destino (elijo Android 2.2).

proyecto de creación de android - objetivo 3 - nombre MyAppCmd ​​--path ./MyAppCmd ​​--activity MyAppCmdActivity --package au.com.myorg.myappcmd

Obtengo una serie de resultados de apariencia saludable "Directorio de proyecto creado ...", "Archivo agregado ..."

En Windows hago doble clic en "AVD Manager.exe".Lanzo mi avd (que apunta a Android 2.2)

Volver a mi ventana de comando

cd MyAppCmd

depuración de hormigas

Después de una lista de salida, obtengo "BUILD SUCCESSFUL ..." (En una ocasión anterior tuve que editar C: \ android \ android-sdk \ platform-tools \ dx.bat para cambiar "set defaultXmx = -Xmx1024M" a " establezca defaultMx = -Xmx512M "para que la compilación sea exitosa). Observo que bin / MyAppCmd-debug.apk existe.

Intento una instalación con

adb install bin / MyAppCmd-debug.apk

Salida:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: device offline

dispositivos adb

List of devices attached
emulator-5554   device

adb install bin / MyAppCmd-debug.apk

No hay más salida en la ventana de comandos. No hay mensaje de error. Solo un cursor parpadeante, ningún mensaje de error o éxito, y no volver al indicador de comandos ">".

Apago la línea de comandos y abro una nueva.

Obtengo el mismo resultado (un cursor parpadeante, etc.) si intento un comando de inserción (temp.txt se creó anteriormente en mi sistema de Windows) ...

adb push temp.txt /sdcard/temp.txt

Soluciones candidatas que he probado

Eclipse relacionado:

Seguido los pasos deEclipse no está hablando con el emulador.Aumentó el tiempo de espera de la conexión ADB. Eclipse> Ventana> Preferencias> Android> DDMS> "Tiempo de espera de conexión ADB (ms):" = 10000 (también he intentado 60000).Ejecutar la aplicación dos veces (y elegir nuevamente el emulador o el teléfono móvil actualmente en ejecución).Limpié mi proyecto: Eclipse> Proyecto> Limpiar ...Eclipse reiniciado.Eclipse rebajado de Indigo (2.7.x) a Helios (2.6.x).

Android relacionado:

Restablezca el adb de varias maneras: comando "Restablecer ADB" desde la perspectiva DDMS de Eclipse (desde el triángulo de la ventana de Dispositivos); línea de comando con "adb kill-server" y "adb start-server"; y usar el Administrador de tareas de Windows para matar a adb.exe.Reinstalar mis controladores USB OEM de Samsung (utilizando KIES> Herramientas> Solucionar error de conexión).Instalar mi SDK de Android en un directorio sin espacios en ninguna parte de las rutas. A saber C: \ Android \ android-sdk. Esto implicó una reinstalación del SDK, anteriormente ubicado en C: \ Archivos de programa \ Android \ android-sdkMi proyecto de Android se instala en un directorio sin espacios en ninguna parte de la ruta.Eliminar y volver a crear el AVD (tanto desde el Administrador de AVD de Android como mediante el Explorador de Windows).Uso de diferentes AVD que se dirigen a diferentes plataformas (Android 2.2 y Android 4.0.3).Justo después de que se abra el emulador, pero antes de que se agote el tiempo: desbloquee el teléfono V esperando hasta que se agote el tiempo con el teléfono bloqueado (en el emulador).

Verificado tengo en mi AndroidManifest.xml:

  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" /> 

Relacionados con el medio ambiente (PC y teléfono):

Reinicie mi telefonoReinicié mi PC de desarrollo.Apagar mi software y hardware firewall.Activación de MS Security Essentials en tiempo real de protección.Desactivado mi lista de hosts.Reinstalado Java.Arrancando en el modo seguro de Windows y ejecutando Eclipse.Elimine manualmente la mayoría de las otras aplicaciones Procesos TCP / IP (por ejemplo, GoogleDesk.exe, Apache Server PunkBuster, etc.) al ver lo que está disponible enSysinternals TCPView.Desconectó el cable Ethernet de mi PC.Otra información

Algunos comandos adb funcionan.

Por ejemplo, lo siguiente hace que la pantalla del emulador se mueva (como se espera).

adb shell monkey -v 100

Puedo enumerar los dispositivos y recuperar correctamente su estado con

dispositivos adb.

Así que hay una comunicación parcial entre un cliente adb y un demonio adb (a través de un servidor adb).

Soy relativamente nuevo en el desarrollo de Android. Sin embargo, instalé con éxito .apks en el emulador y en mi dispositivo hace aproximadamente 6 meses (desde la PC de WinXP que ahora estoy tratando de hacer funcionar). He ignorado a Android desde entonces. Cuando regresé recientemente tuve un problema al crear mi .apks, que se solucionó al eliminar mi debug.key y permitir que eclipse generara uno nuevo.

En los 6 meses intermedios, mi máquina de desarrollo ha cambiado en todo tipo de formas. Instalar nuevos servidores y aplicaciones, cambiar la configuración del firewall, etc. Por lo tanto, podría haber algún cambio que estoy pasando por alto.

También tengo una computadora portátil Win7 desde la cual instalé con éxito .apks en el emulador y el dispositivo físico conectado por USB. Es decir, tengo una copia del SDK de Android, Eclipse, JAVA, etc. instalado en la máquina Win7. Así que sé que tengo una idea general sobre el procedimiento correcto para configurarlo todo correctamente.

Puedo instalar el .apk manualmente haciendo doble clic en el archivo a través de ES File Explorer desde mi teléfono (que se conecta a mi máquina de desarrollo de forma inalámbrica).

Pensamientos finales

Parece que hay algún problema con el cliente de adb, el servidor de adb o el daemon de adb al hablar por completo.

Tengo tres hipótesis:

Es mi culpa. Que hay algún tipo de conflicto TCP / IP que rompe algunas de las conexiones entre el cliente adb, el servidor adb o el demonio adb. Esto se debe a una configuración anormal en mi PC (como cualquier desarrollador, cambio la configuración en mi sistema todo el tiempo). Sin embargo, he intentado desactivar la seguridad y otros procesos TCP / IP potencialmente conflictivos (por lo que puedo decir).Algún problema simple que sigo pasando por alto.Es culpa de google / android. Es decir, hay un error en el adb de Android que requiere una actualización de las herramientas de la plataforma SDK de Android. Creo que esto es menos probable ya que esperaría que haya aparecido ahora.Actualizaciones para publicar

2012-06-22 18:55 (UTC):

Complete la reinstalación (nuevamente) de Java, Eclipse y el SDK de Android con algunas variaciones en la instalación (por ejemplo, Java instalado en la raíz; el SDK de Android en el valor predeterminado "Archivos de programa \" y desactivando todo el software de seguridad durante la instalación).

Observo un error "Error al detener el servidor ADB (código -1)". en el registro de Android SDK Manager durante e instale las diversas partes de la plataforma / herramientas (a través del administrador).

30-06-2012 06:15 (UTC):

Reajustó las especificaciones de "Mi entorno" para reflejar las últimas pruebas.

Respuestas a la pregunta(14)

Su respuesta a la pregunta