应用程序崩溃,并发生IndexOutOfBoundException:setSpan…结束于performAccessibilityAction中的长度1以上

问题描述 投票:0回答:1

[我使用发布到Google Play的应用从未知来源获得此ACRA报告:

java.lang.IndexOutOfBoundsException: setSpan (4 ... 4) ends beyond length 1
    at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1090)
    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:665)
    at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:658)
    at android.text.Selection.setSelection(Selection.java:76)
    at android.text.Selection.setSelection(Selection.java:87)
    at android.widget.EditText.setSelection(EditText.java:98)
    at android.widget.EditText.performAccessibilityActionInternal(EditText.java:138)
    at android.view.View.performAccessibilityAction(View.java:8889)
    at android.view.AccessibilityInteractionController.performAccessibilityActionUiThread(AccessibilityInteractionController.java:668)
    at android.view.AccessibilityInteractionController.-wrap6(AccessibilityInteractionController.java)
    at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:1194)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5421)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

堆栈框都没有指示我的任何代码(都是Android内部代码),所以我不知道它可能是什么。这不像我的应用程序正在调用带有参数的内容,即说要访问1字符串的字符4 ... 4。因此,不幸的回答是,我正在访问超出字符串末尾的字符(或等效的数组元素)并没有太大帮助。不知何故,似乎Android内部发生了某种事情,而我的应用没有调用任何东西。而且我真的不知道用户是如何触发它的,可能是在文本输入框中进行了一些时髦的字符串选择。感谢您的帮助。

android internals
1个回答
0
投票

如果您的setSelection出错,

也许您这样使用。

 editText.setSelection(editText.length());

因此更改为

    Editable editable = mFrontEditText.getText();
    Selection.setSelection(editable, editable.length());

像这样。

© www.soinside.com 2019 - 2024. All rights reserved.