解决TextView引起的莫名崩溃

进了2017年之后到现在,我一直都在忙着做一款IM应用,功能和微信、QQ类似。
在开发和测试的过程中,发现了几个可以总结记录的东西,今天和大家来分享其中之一。
首先来看一个异常:

java.lang.ArrayIndexOutOfBoundsException: length=125; index=-1
at android.text.StaticLayout.calculateEllipsis(StaticLayout.java:830)
at android.text.StaticLayout.out(StaticLayout.java:749)
at android.text.StaticLayout.generate(StaticLayout.java:453)
at android.text.StaticLayout.(StaticLayout.java:145)
at android.widget.TextView.makeSingleLayout(TextView.java:6298)
at android.widget.TextView.makeNewLayout(TextView.java:6144)

乍看上去,倒是和我这边没什么关系,都是Android内部实现的问题。但是每到这个地方,都会崩溃,100%复现。这对于实际用户使用而言不是什么好事。
于是Google,百度了一圈,发现了Android系统在某个版本中的“坑”。
具体解决办法:
之前xml布局中,对于TextView:

   

看上去没有问题,如果要解决上述崩溃问题,改为:

   

即可。
这里参考了:Google Code

上述问题在Android 4.4版本上有所体现,其他的版本暂不确定。

你可能感兴趣的:(解决TextView引起的莫名崩溃)