前言

TextView重写setText(CharSequence text, BufferType type) 时出现如下异常日志(截取部分日志):

java.lang.NullPointerException: Attempt to invoke interface method 'int java.lang.CharSequence.length()' on a null object reference
        at android.text.BoringLayout.isBoring(BoringLayout.java:325)
        at android.widget.TextView.makeSingleLayout(TextView.java:8332)
        at android.widget.TextView.makeNewLayout(TextView.java:8204)
        at android.widget.TextView.onMeasure(TextView.java:8586)
        at androidx.appcompat.widget.AppCompatTextView.onMeasure(AppCompatTextView.java:554)
        at android.view.View.measure(View.java:23169)
        at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
        at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
        at android.view.View.measure(View.java:23169)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)

正文

重写setText(CharSequence text, BufferType type) 是为了对比text,由于我加了判断添加,代码没有走

super.setText(text, type);

就出现这个问题。

解决方式,就是不论添加什么条件,一定要执行super.setText(text, type)。

参考文章

  1. android 9.0设备 android.text.BoringLayout.isBoring异常 – 简书 (jianshu.com)

相关文章

暂无评论

none
暂无评论...