2010-05-04 23 views
5

Soy nuevo en Eclipse y Android, pero estoy familiarizado con Java. Habiendo dicho eso, traté de seguir el tutorial 'Hello Android' del sitio del desarrollador utilizando el último Eclipse (Galieo) y el Android SDK 2.1, estoy en un Macintosh con Snow Leopard (OS X 10.6). Tengo un dispositivo virtual predeterminado (aunque mi objetivo es en realidad para teléfonos como mi propio HTC Incredible, que tiene el procesador Snapdragon y, por supuesto, todo el último dispositivo en teléfonos inteligentes).Problema con el tutorial 'Hello Android'

Todo parecía ir bien hasta que fui a RUN>RUN y luego seleccioné 'Aplicación Android'. Mi computadora hace girar sus ruedas por un tiempo y luego veo dos errores. He pegado la salida de Eclipse a continuación:

[2010-05-04 01:53:46 - HelloAndroid] ------------------------------ 
[2010-05-04 01:53:46 - HelloAndroid] Android Launch! 
[2010-05-04 01:53:46 - HelloAndroid] adb is running normally. 
[2010-05-04 01:53:46 - HelloAndroid] Performing com.example.helloandroid.HelloAndroid activity launch 
[2010-05-04 01:53:46 - HelloAndroid] Automatic Target Mode: launching new emulator with compatible AVD 'myAVD' 
[2010-05-04 01:53:46 - HelloAndroid] Launching a new emulator with Virtual Device 'myAVD' 
[2010-05-04 01:53:58 - HelloAndroid] New emulator found: emulator-5554 
[2010-05-04 01:53:58 - HelloAndroid] Waiting for HOME ('android.process.acore') to be launched... 
[2010-05-04 01:53:59 - Emulator] 2010-05-04 01:53:59.501 emulator[10398:903] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz. 
[2010-05-04 01:54:23 - HelloAndroid] emulator-5554 disconnected! Cancelling 'com.example.helloandroid.HelloAndroid activity launch'! 

nunca hago ver el texto en el emulador y se bloquea el emulador con un mensaje sobre ello dejar de forma inesperada.

El informe afirma: accidente

Process:   emulator [10472] 
Path:   /Applications/android-sdk-mac_86/tools/emulator 
Identifier:  emulator 
Version:   ??? (???) 
Code Type:  X86 (Native) 
Parent Process: eclipse [10468] 

Date/Time:  2010-05-04 02:25:41.153 -0500 
OS Version:  Mac OS X 10.6.3 (10D573) 
Report Version: 6 

Interval Since Last Report:   2558914 sec 
Crashes Since Last Report:   4 
Per-App Crashes Since Last Report: 2 
Anonymous UUID:      C5F178C1-5290-4CA9-AD6E-E9C4F5582754 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x000000001fd2f000 
Crashed Thread: 3 

NOTA: Ejecutar el emulador desde la línea de comandos con:

iainnitro-Mac:tools iainnitro$ ./emulator -avd myAVD 

2010-05-04 02:49:23.011 emulator[10556:903] Warning once: This application, or a library it 
uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw 
and move to Quartz. 
Segmentation fault 
iainnitro-Mac:tools iainnitro$ 

produce un fallo de segmentación (como se señaló anteriormente a partir de la salida del terminal). Entonces el emulador está muriendo por sí solo antes de que se pueda mostrar algo.

He intentado reiniciar los procesos de ADB.

El código real es línea por línea desde el tutorial y nunca he podido acceder a la parte XML.

No estoy seguro de qué hay de malo en la configuración de mi entorno o si solo se trata de una incompatibilidad con Snow Leopard? REALMENTE agradecería cualquier ayuda para resolver esto ya que estoy muy interesado en desarrollar en esta plataforma.

de agradecimiento,

Mike N Lawrence, Kansas

+0

La advertencia de QuickDraw -> Quartz es solo eso; cuando construí el tutorial lo encontré también y pensé que era responsable de los problemas que estaba teniendo con el emulador, pero no estaba esperando el tiempo suficiente para que el emulador arranque. Entonces, si te estás preocupando por Quartz, no lo hagas. –

Respuesta

3

Sin experiencia directa, pero esto parece ser un tema recurrente:

This thread sugiere:

No has Deje que el emulador arranque completamente. Empieza y luego espera hasta que veas un escritorio, como en un teléfono real.

This one menciones (sospecho punto 1. No es una preocupación para usted):

  1. más RAM. Me estaba ejecutando en 256 MB (que creo que está por debajo de los requisitos mínimos), acaba de actualizar hoy a 1024 MB (mucho tiempo por venir), la aplicación ahora comienza bien. Aunque todavía veo algunos mensajes de error en el emulador, parece que en realidad no hacen nada.

  2. Instalar desde la línea de comandos.Se trata de un laborius poco, pero se puede poner en marcha un emulador de la línea de comandos (asumiendo <android sdk path>\tools se añade a la variable PATH) simplemente escribe emulador, a continuación, busque la ubicación de your_app_here.apk, y ejecutar

adb install your_app_here.apk 

Si inicia el emulador de Eclipse, ejecutar adb kill-service y luego adb start-service primera (o kill-server/start-server. no está seguro de los comandos exactos). Luego, su aplicación se instalará en el emulador.


también (a bit old but might still be relevant)

Tal vez el emulador está funcionando tan lento, y el servidor de ADB, u otro componente como "DDMS" es un poco de "desesperada" porque parece que está a la espera de el emulador para inicializar la aplicación de algunos HOME.
Pero el emulador se está ejecutando lento, la consola en Eclipse envía un mensaje: emulator-5554 disconnected! Cancelling 'com.android.hello.HelloAndroid' launch!; y el emulador continúa funcionando normalmente y arranca su sistema, pero no ejecuta la aplicación que construyo.

Así que para ese problema corro programa, y ​​cuando se abre el emulador, vuelvo a eclipsar en DDMS Perspectiva y en el dispositivo de pestaña y pulse un botón "restart adb server" antes de la consola me muestra el mensaje de "emulator-5554 disconnected! ".
Lo hago varias veces hasta que el emulador finalmente arranque el sistema operativo.
Después de iniciar el sistema operativo en el emulador, eclipse no envía ese error de desconexión, y "envía" la aplicación que he creado, también la consola muestra mensajes sobre esto.
Luego aparece finalmente en el móvil "Hola, Android".

+0

el emulador realmente muere por sí solo con la pantalla Android_ justo después de la última entrada. Voy a probar las ideas de adb y ver si eso ayuda, pero puede haber más memoria en orden ... aunque mi máquina tiene 2 GB, es un Mac Mini de un mes :-) –

+0

ejecutó el emulador desde la línea de comandos y muere con una falla de segmentación. –

1

Ha habido una discusión sobre esto con dos soluciones propuestas http://code.google.com/p/android/issues/detail?id=724

Comment 17 by zachrcrowe, Jan 06, 2010 FYI - que tenía que cambiar una línea en el ejemplo Hola Android para leer this.setContentView (TV); para que funcione Como se mencionó anteriormente, la advertencia de desaprobación no debería afectar la funcionalidad del emulador.

Comment 18 by mfrony, Jan 14, 2010 Tuve el mismo problema cuando ejecuté el ejemplo de Hello Android. La forma en que lo resolví y podría ejecutar mi primer código de Android cambiando el objetivo de compilación del proyecto de 1.1 a 1.5.

+0

Estoy seguro de que mi objetivo (y la plataforma instalada principalmente, que es Android 2.1) está bien. Todavía estoy recibiendo 'emulador se cerró inesperadamente' cuando se inicia justo cuando aparece la última línea. Agregar información del informe de bloqueo a la pregunta original. Probando esto.setTextView sugerencia. –

0

Por la razón que sea, deje de tener el fallo de segmentación cuando he añadido:

this.setContentView(tv); 

el 'esto' aparentemente resuelto el problema. La falla seg ocurre si intentas ejecutar el emulador sin ningún archivo .apk, supongo. (Lo estaba obteniendo de la línea de comando también). Espero que el tutorial se actualice.

+0

¿Qué es "tv"? No está definido –

+0

@AmySukumunu es la vista de texto que se define en el Tutorial de Hello Android. – stalepretzel

1

Esto parece ser un problema de tiempo. Por algún motivo, Eclipse intenta cargar la aplicación en el emulador antes de que esté "lista". No estoy seguro de por qué ocurre esto, pero encontré una solución: simplemente inicie el emulador desde la línea de comandos antes de ejecutar la aplicación.

  1. inicio limpio mediante el cierre de Eclipse (tal vez el PO no ha salido Eclipse antes de que él trató de correr a través de la línea de comandos?)
  2. iniciar el emulador de terminal a través navegando a la android-sdk-mac_86/herramientas directorio y escribiendo:

    -avd ./emulator my_avd

  3. abierto Eclipse y tratar de ejecutar el tutorial de nuevo utilizando los mismos pasos que antes

  4. Se abrirá un cuadro de diálogo que le preguntará si desea iniciar un AVD nuevo o usar el que ya se está ejecutando; elija usar el que ya se está ejecutando.
0

Tuve el mismo problema cuando traté de ejecutar el emulador usando un 4.0 AVD. Solía ​​bloquearse en la pantalla de inicio y muestra "Error de segmentación" en la consola. Pude arreglarlo aumentando el tamaño de la tarjeta SD del AVD a 1 GB desde 32 MB.

1

lo que hice fue mover el círculo que aparece cuando el AVD se inicia en la posición de desbloqueo, y allí estaba '¡Hola, Android'!

0

See Related post

Another related post

Esto funcionó en Linux para mí:

  • Ejecutar el emulador (Esperar a la pantalla de inicio del emulador para cargar)
  • Haga clic en Ventana> Abrir perspectiva> DDMS
  • En el Panel de dispositivos, haga clic en el menú desplegable> Restablecer adb
  • Ejecuta el proyecto
Cuestiones relacionadas