我在安卓市场上收到了一个神秘的异常报告: TextView getLeftFadingEdgeStrength()中的一个NullPointer。我从未在我的任何测试设备上观察到异常。它似乎影响了少数用户,但我无法将其追溯到Android的特定版本或我的软件的发布。
堆栈跟踪消失在平台UI代码中的某处,没有引用我的应用程序中的任何内容。我已经在Google和这里进行了相当彻底的搜索,以寻找问题的任何线索,但没有成功。
我怀疑这可能与在我的TextViews中使用选取框椭圆大小设置有关……我这样做不知何故暴露了某些平台或版本上的UI小部件代码中的一个bug。但这只是猜测,我不愿花太多时间在平台代码追逐理论上花费太多时间。
所以,我想我应该在这里发布这个问题,看看是否有人遇到过类似的问题,或者可以帮助钻研确切的问题。
堆栈跟踪如下:
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)发布于 2012-04-10 19:51:16
如果其他人偶然发现了这个问题,我有一个用户报告了在Android 2.3.5设备上完全相同的崩溃。
android.widget.TextView.getLeftFadingEdgeStrength(TextView.java:7449)的nulljava.lang.NullPointerException at android.view.View.draw(View.java:7004) at android.view.ViewGroup.drawChild(ViewGroup.java:1646) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.View.draw(View.java:6936) ...
虽然我不能确定崩溃的确切原因,但在我的例子中,我能够通过将几个TextViews中的android:ellipsize="marquee“属性替换为android:ellipsize=”android:ellipsize=“来解决这个问题。(根据Android源码,如果文本视图设置为字幕,则崩溃发生在getLeftFadingEdgeStrength方法中。)
同样的代码在许多设备和Android版本上都可以正常工作,因此崩溃仅限于少数设备。在某种程度上,这个特定设备的特点是它使用的是RTL语言,并且有问题的TextView被包含在动画中。
https://stackoverflow.com/questions/8725888
复制相似问题