嗨,有人知道这个崩溃吗?
仍然困惑如何重现。从 stackTrace 来看,它与电子邮件 EditText 相关。
大多数发生在小米的 Redmi 设备和 100% Android 10 上
全栈跟踪
Editor.java line 3324
Fatal Exception: java.lang.IndexOutOfBoundsException
offset(18) should be less than line limit(17)
android.text.TextLine.measure (TextLine.java:353)
android.text.Layout.getHorizontal (Layout.java:1213)
android.text.Layout.getHorizontal (Layout.java:1190)
android.text.Layout.getPrimaryHorizontal (Layout.java:1160)
android.text.Layout.getPrimaryHorizontal (Layout.java:1149)
android.widget.Editor$ActionPinnedPopupWindow.computeLocalPosition (Editor.java:3324)
android.widget.Editor$PinnedPopupWindow.show (Editor.java:3628)
android.widget.Editor$ActionPinnedPopupWindow.show (Editor.java:3471)
android.widget.Editor$EmailAddPopupWindow.show (Editor.java:4995)
android.widget.Editor$1.run (Editor.java:1528)
android.os.Handler.handleCallback (Handler.java:914)
android.os.Handler.dispatchMessage (Handler.java:100)
android.os.Looper.loop (Looper.java:225)
android.app.ActivityThread.main (ActivityThread.java:7563)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:539)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:994)
最佳答案
offset(X) should be less than line limit(Y)
我在 Android 12+ EditText
中遇到了类似的错误s。出于某种原因,EditText.getText().length()
(在上面的错误中称为 Y )与复制粘贴文本的实际长度不匹配(在上面的错误中称为 X )。我们的解决方法是扩展
EditText
然后手动调用setText("", TextView.BufferType.EDITABLE)
(在我们的例子中,在 onTextContextMenuItem
中),因为它似乎用实际文本长度更正了预期的文本长度。
关于android - Editor.java IndexOutOfBoundsException offset(x) 应该小于 line limit(y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71017238/