2010-08-18 14 views
17

Estoy un poco perdido, aquí. He estado viendo un número cada vez mayor de estos NullPointerException s en handleStopActivity. Sospecho que el aumento de los coinicidas con el aumento de 2.2 actualizaciones a los propietarios de Droid, aunque eso es solo una suposición. Nunca he visto el bloqueo, y el seguimiento de pila proporcionado por el mercado no menciona ninguna de las clases que he escrito. Como tal, no tengo idea de por dónde empezar para solucionar el problema.NullPointerException en handleStopActivity - No hay referencia a mi código en el seguimiento de la pila

java.lang.NullPointerException 
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3674) 
at android.app.ActivityThread.access$2600(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2153) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:144) 
at android.app.ActivityThread.main(ActivityThread.java:4937) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
at dalvik.system.NativeStart.main(Native Method) 

Como yo no sé la causa, también no saben qué tipo de información para proporcionar a ayudar en el diagnóstico, por lo que daremos un overiew: Mi aplicación es WootWatcher. Realiza un seguimiento de Woot.com y notifica a los usuarios de nuevos artículos para la venta. Lo hace por medio de un servicio que se ejecuta en un proceso separado. El servicio y la actividad principal se comunican entre sí a través de la interfaz de ayuda y devolución de llamada. También hago uso de manejadores de mensajes tanto en el servicio como en la actividad, y frecuentemente genero hilos para tareas costosas.

+0

Ejecuto droid (todavía no hay actualización de 2.2, esperando ...) Te avisaré si veo algo extraño. – Nick

+0

Bueno, hoy recibí la actualización 2.2 y jugué un poco con la aplicación. No veo problemas – Nick

+0

mismo problema aquí – emmby

Respuesta

2

Al repasar esta pregunta de 4 años, me doy cuenta de que debería ser capaz de diagnosticarla, pero desafortunadamente no encuentro ninguna versión de AOSP con la que coincidan estas líneas. El Droid debe haber usado alguna versión alterada de la fuente que no estuvo disponible.

Dicho esto, Froyo's handleStopActivity() no tiene muchas oportunidades para una excepción de puntero nulo. Lo más probable es que señale Activity.finish() cuando la actividad ya se ha detenido o está en proceso de detención.

Esto generalmente ocurre cuando registra oyentes que finalmente llaman al finish() y no cancela el registro de los oyentes en onPause().

+0

respuesta aceptada no votada ¿por qué? – Siddharth

+0

Porque no puedes votar tu propia respuesta: P – Sufian

-2

Quizás intente ajustar el método handleStopActivity en el bloque try-catch y manejar el error usted mismo, dándose más detalles y evitando el "cierre forzado".

+2

¿Sugiere que modifique el código del sistema operativo de Android? – BenTobin

+0

@BenTobin, puedes ver lo que está en ActivityThread.java:3674, a veces puede dar pistas. ¿Los informes de errores en Play Store mencionan la versión de Android? – Matthieu

1

¿Qué tal si se informa un error en el proyecto Android (sería necesario verificar si alguien más lo informó)? Si ningún código de usted está en el seguimiento de la pila, eso indicaría un error en el marco. Aunque tal vez en tu otro código rompes, p. un contrato/suposición tácito.

+0

Por favor, combine sus respuestas en una sola respuesta. –

+0

Esas respuestas representan diferentes enfoques: ¿por qué fusionarlas? – KarolDepka

+0

@KarolDepka puede crear encabezados en él, pero hacerlo una sola respuesta es más adecuado para StackOverflow. – Sufian

0

No sé, si todavía está buscando una solución, pero aquí es lo que he descubierto. Si ha encontrado una solución real, hágamelo saber.

Acabo de tener el mismo problema ... Nunca tuve ese problema y sin cambiar el código, apareció por alguna razón. Al usar Google, encontré la pregunta que publicó Joseph, pero eso no parece ser exactamente lo mismo. También encontré this y this. Estos dos parecen tener el mismo problema, pero no hay solución. Luego encontré this blog.

El autor cuenta algo acerca de qué es: un error en Android. Además, tiene que ver con un Cursor. Eso no solucionó mi problema, pero noté que utilicé un Cursor, unas líneas antes de llamar al startActivity(someIntent); (también llamé finish(), pero eliminar esa línea no hizo la diferencia).
Traté de eliminar las líneas que incluyen el Cursor y de repente funciona de nuevo ..
No tengo ni idea, por qué funciona, pero lo hace. Acabo de mover el código con el Cursor a mi otro Activity.

Definitivamente no es una buena solución, pero funciona para mí.

Solo hay una pregunta más: ¿Incluso usa Cursor y llama al startActivity(..) o algo similar?

Editar:
Me acabo de enterar, que no soluciona el problema, yo sólo no prueba suficiente. El Activity que comencé funcionaba bien hasta que quise crear el siguiente Activity de ese Activity que comencé antes.Al iniciar el siguiente Activity, mi aplicación se bloquea nuevamente.

Cuestiones relacionadas