Excepción de puntero nulo en TextView getLeftFadingEdgeStrength sólo se notifica a través de Android Market

Estoy recibiendo una excepción de misterio informada a través del Android Market; Un NullPointer en TextView getLeftFadingEdgeStrength (). Nunca he observado la excepción en ninguno de mis dispositivos de prueba. Parece estar afectando a una minoría de usuarios, pero no puedo rastrear a una versión específica de Android o la liberación de mi software.

El rastreo de la pila desaparece en algún lugar del código UI de la plataforma, sin referencia a nada de mi aplicación. He realizado una búsqueda exhaustiva en Google y aquí para cualquier indicio del problema, pero sin éxito.

Sospecho que podría ser algo que ver con el uso de un marco ellipsize configuración en una de mis TextViews … y que la forma en que estoy haciendo esto de alguna manera expone un error en el código de interfaz de usuario en algunas plataformas o versiones. Pero esto es conjetura y estoy repugnando a pasar demasiado tiempo buceando a través de la plataforma de código persiguiendo teorías.

Así pues, pensé que fijaría el problema aquí y ver si cualquier persona ha encontrado un problema similar o puede ayudar a pulir adentro en el asunto exacto.

El seguimiento de la pila sigue:

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) 

En caso de que alguien tropiece con este problema, tengo un usuario informando exactamente el mismo bloqueo en el dispositivo Android 2.3.5.

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) …

Aunque no pude determinar la razón exacta del accidente, en mi caso pude resolverlo reemplazando el atributo android: ellipsize = "marquee" en pareja 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 un pequeño número de dispositivos. Lo que era algo específico para este dispositivo en particular era que estaba usando un lenguaje RTL y el TextView ofensivo estaba involucrado en una animación.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.