TextInputEditText在魅族手机上引起的NullPointException

disign.widget包提供了TextInputLayout挺好用的,一般都是搭配TextInputEditText来实现,错误提示,hint提示这些,使用很方便。
但是在魅族手机上导致了崩溃(机型android 7.0 魅族5),追踪日志是调用 getLineForOffset()抛异常了。

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.text.Layout.getLineForOffset(int)' on a null object reference
   at android.widget.Editor.updateCursorPositionMz(Editor.java:6964)
   at android.widget.Editor.updateCursorsPositions(Editor.java:1760)

从日志中可以看到在魅族手机上是调用updateCursorPositionMz()抛了异常,而我查遍系统Editor源码都没有发现这个方法,说明这应该是魅族修改了系统源码导致。所以只能另谋他法,使用其他控件替换TextInputEditText。我们可以使用AppCompatEditText来替换TextInputEditText来实现,果然测试成功,不崩溃,老铁,没毛病!

stackoverflow上也有人提问 NullPointerException on Meizu devices in Editor.updateCursorPositionMz,感兴趣的可以去看看。


致敬前辈,砥砺前行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值