[我使用发布到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内部发生了某种事情,而我的应用没有调用任何东西。而且我真的不知道用户是如何触发它的,可能是在文本输入框中进行了一些时髦的字符串选择。感谢您的帮助。
如果您的setSelection出错,
也许您这样使用。
editText.setSelection(editText.length());
因此更改为
Editable editable = mFrontEditText.getText();
Selection.setSelection(editable, editable.length());
像这样。