android - BoringLayout.isBoring 的 NullPointerException 一点也不无聊

标签 android nullpointerexception

下面的堆栈跟踪 通常不会发生,但有时会发生在某些用户身上。

在 Android 2.3.3 上,异常发生在 BoringLayout.isBoring:240
在 Android 4.1.2 上相同,第 260 行

如有任何帮助,我们将不胜感激。 :-)

java.lang.NullPointerException
at android.text.BoringLayout.isBoring(BoringLayout.java:260)
at android.widget.TextView.onMeasure(TextView.java:6322)
at android.view.View.measure(View.java:15473)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5056)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1038)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:576)
at android.view.View.measure(View.java:15473)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1223)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:576)
at android.view.View.measure(View.java:15473)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5056)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
at android.view.View.measure(View.java:15473)
at android.widget.ListView.setupChild(ListView.java:1853)
at android.widget.ListView.makeAndAddView(ListView.java:1778)
at android.widget.ListView.fillDown(ListView.java:678)
at android.widget.ListView.fillFromTop(ListView.java:739)
at android.widget.ListView.layoutChildren(ListView.java:1614)
at android.widget.AbsListView.onLayout(AbsListView.java:2296)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:948)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1589)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:948)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14055)
at android.view.ViewGroup.layout(ViewGroup.java:4604)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1992)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1813)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1112)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4472)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

好的,找到了。 我不会删除这个问题,因为也许有一天它会对某人有所帮助。

所以我的错误是: 我扩展了 TextView 以创建一个操作文本的类,并根据值集进行查看。

我的错误是在某些情况下我选择不设置文本,而只是简单地调用了“return”。在那些情况下,'text' 为 null,这导致了上述 NPE。

教训:如果重写 setText,则必须在调用时设置一个值。

这是我记得“按契约设计”、先决条件、不变量等的时间点之一。这在这里可能会有帮助。

对于所有试图提供帮助的人,我要感谢你们。 @Deylan - 特别感谢,是你让我朝着正确的方向前进。

关于android - BoringLayout.isBoring 的 NullPointerException 一点也不无聊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18214450/

相关文章:

java.lang.NullPointerException 无法找出导致错误的原因

android - 打开 Assets 数据库文件时出现 java.lang.NullPointerException

java - Kotlin 中的方法的返回类型应该是什么,该方法的值可以为 null 并且将从 Java 调用?

android - SpannableString 中可点击对象中的边框

android - System.TypeLoadException : Parent class vtable failed to initialize, 由于 : VTable setup of type AndroidX. SwipeRefreshLayout.Widget.SwipeRefreshLayout

java - 我需要帮助才能在 Android 中获取 CNAP(CallerDisplayName)

java - 尝试将新对象添加到数组时出现空指针异常?

java - 处理 Activity 结果 : data is null when implementing inapp billing v3

android - 在android中合并两个或多个.wav文件

java - 刷新 ServletOutputStream 时出现空指针异常