Error de depuración en el emulador de Android: pantalla negra

Encontré un problema mientras intentaba depurar el siguiente código:

package course.examples.theanswer; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class TheAnswer extends Activity { public static final int[] answers = { 42, -10, 0, 100, 1000 }; public static final int answer = 42; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.answer_layout); TextView answerView = (TextView) findViewById(R.id.answer_view); int val = findAnswer(); String output = (val == answer) ? "42" : "We may never know"; answerView.setText("The answer to life, the universe and everything is:\n\n" + output); } private int findAnswer() { for (int val : answers) { if (val == answer) return val; } return -1; } 

}

He insertado un punto de ruptura en la línea "int val = findAnswer();" , Es decir, antes de que la aplicación ejecute el mensaje ("La respuesta a la vida …"). Así, el emulador muestra la pantalla blanca con el título, es correcto, pero cuando pasa unos 10 segundos la pantalla se vuelve negra … y el logCat muestra el siguiente mensaje:

 01-23 05:57:29.995: I/System.out(2009): waiting for debugger to settle... 01-23 05:57:30.205: I/System.out(2009): debugger has settled (1309) 01-23 05:57:30.845: D/dalvikvm(2009): threadid=1: still suspended after undo (sc=1 dc=1) 01-23 05:57:37.825: W/ActivityManager(1254): Launch timeout has expired, giving up wake lock! 01-23 05:57:37.835: E/WindowManager(1254): Starting window AppWindowToken{b33e2a00 token=Token{b3344b58 ActivityRecord{b317b130 u0 course.examples.theanswer/.TheAnswer t10}}} timed out 

El mensaje final es cuando la pantalla se vuelve negra. No puedo publicar imágenes pero el emulador solo muestra: hora, red y batería. Además, si presioné el botón "Resumen", la aplicación se fija bien. Sin embargo, creo que no es la idea. Debería detenerse con la pantalla blanca para mantener la depuración … (creo, pero no estoy seguro). ¿Es normal?

¿Puede alguien ayudarme por favor?

Gracias

La explicación es simple, pero no sé cómo cambiar este comportamiento:

Cuando se ejecuta una aplicación de Android, el subproceso principal debe procesar todos los mensajes entrantes (desde la GUI y otros mensajes internos). Está estrictamente prohibido utilizar el hilo principal para operaciones duraderas porque en ese momento el hilo está bloqueado y no puede procesar mensajes.

Al iniciar una aplicación, Android ofrece 10 segundos para que la aplicación se inicie. Después espera que la aplicación esté lista para procesar mensajes.

Ahora a su problema:

Ha establecido un punto de ruptura en onCreate (..) un método que se llama por el hilo principal – un hilo que no debe bloquearse. Establecer un punto de ruptura no es otra cosa que interrumpir / bloquear el hilo hasta que presione resume. Por lo tanto, después de 10 segundos, el sistema Android (que no se ve afectado por el depurador) espera que la aplicación termine con el inicio. Pero el hilo principal sigue atrapado por el punto de quiebre! Por lo tanto Android piensa que la aplicación falló al arrancar y detiene a parte responsable de la GUI.

La única solución que veo sería desactivar este "tiempo de lanzamiento" – sin embargo no tengo ni idea de si o cómo esto es posible.

  • Cómo demostrar la aplicación de Android en el sitio web?
  • ¿Por qué la entrada de teclado deja de funcionar en Android Emulator
  • Cómo instalar Android Market en el emulador para todos los api
  • Coreógrafo (639): Omitido 50 cuadros
  • Emulador de Android: ¿Cómo supervisar el tráfico de red?
  • ¿Cómo agregar archivos a la tarjeta SD en el emulador de Android?
  • ¿Cómo puedo simular que el emulador tiene como una tarjeta SD?
  • Identificador de dispositivo del emulador de Android
  • ¿Cómo puedo simular diferentes tipos de carga en un dispositivo Android?
  • Configuración del sistema hebreo en el emulador de Android
  • ¿Qué formatos de video se reproducirán en el emulador?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.