TextInputEditText在魅族手机上引起的NullPointException

xiaoxiao2021-04-16  73

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,感兴趣的可以去看看。


致敬前辈,砥砺前行!

转载请注明原文地址: https://www.6miu.com/read-4818125.html

最新回复(0)