2012-01-04 13 views
5

Me aparece una excepción misteriosa informada a través de Android Market; un NullPointer en TextView getLeftFadingEdgeStrength(). Nunca he observado la excepción en ninguno de mis dispositivos de prueba. Parece afectar a una minoría de usuarios, pero no puedo rastrearlo hasta una versión específica de Android o la versión de mi software.Excepción del puntero nulo en TextView getLeftFadingEdgeStrength informado solo a través de Android Market

El seguimiento de la pila desaparece en algún lugar del código de la interfaz de usuario de la plataforma, sin hacer referencia a nada de mi aplicación. Realicé una búsqueda bastante exhaustiva en Google y aquí para cualquier indicio del problema, pero sin éxito.

Sospecho que podría tener algo que ver con usar una configuración de elipsis de marquesina en uno de mis TextViews ... y que la forma en que lo hago expone de alguna manera un error en el código del widget de UI en algunas plataformas o versiones. Pero esto es conjetura y soy reacio a pasar demasiado tiempo buceando a través del código de la plataforma persiguiendo teorías.

Entonces, pensé en publicar el problema aquí y ver si alguien ha encontrado un problema similar o puede ayudar a resolver el problema.

Seguimiento de la pila de la siguiente manera:

java.lang.NullPointerException 
    at android.widget.TextView.getLeftFadingEdgeStrength(TextView.java:7321) 
    at android.view.View.draw(View.java:7004) 
    at android.view.View.buildDrawingCache(View.java:6695) 
    at android.view.ViewGroup.onAnimationStart(ViewGroup.java:1259) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1505) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
    at android.view.View.draw(View.java:6936) 
    at android.widget.FrameLayout.draw(FrameLayout.java:357) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1901) 
    at android.view.ViewRoot.draw(ViewRoot.java:1530) 
    at android.view.ViewRoot.performTraversals(ViewRoot.java:1266) 
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1868) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:3691) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
    at dalvik.system.NativeStart.main(Native Method) 

Respuesta

3

En caso de que alguien se tropieza otra persona a través de este problema, tengo un usuario informar exactamente el mismo accidente en Android 2.3.5 dispositivo.

nulljava.lang.NullPointerException en android.widget.TextView.getLeftFadingEdgeStrength (TextView.java:7449) en android.view.View.draw (View.java:7004) en android.view.ViewGroup.drawChild (ViewGroup.java:1646) en android.view.ViewGroup.dispatchDraw (ViewGroup.java:1373) en android.view.View.draw (View.java:6936) ...

Mientras estaba no fue capaz de determinar la razón exacta del bloqueo, en mi caso pude resolverlo reemplazando el atributo android: ellipsize = "marquee" en un par de TextViews a android: ellipsize = "end". (De acuerdo con la fuente de Android, el bloqueo ocurre en el método getLeftFadingEdgeStrength si la vista de texto está configurada como marquesina).

El mismo código funcionó sin problemas en muchos dispositivos y versiones de Android, por lo que el bloqueo se limitó a solo un pequeño número de dispositivos. Lo que era más o menos específico para este dispositivo en particular era que estaba usando un lenguaje RTL Y el ofensivo TextView estaba involucrado en una animación.

+0

Gracias, única pista que he tenido en una solución. Llegué a sospechar el atributo de elipsis, pero no estoy determinando una forma de detener el problema. –

Cuestiones relacionadas