前言
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)。
参考文章
© 版权声明