相关疑难解决方法(0)

IndexOutOfBoundsException setSpan (34 ... 48) 超出长度 34 结束

我有一份崩溃报告指出,IndexOutOfBoundsException但我不知道是什么原因导致的,因为堆栈中没有我的代码中的任何内容。这是堆栈:

Fatal Exception: java.lang.IndexOutOfBoundsException: setSpan (34 ... 48) ends beyond length 34
       at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
       at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
       at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
       at android.widget.Editor$SuggestionsPopupWindow.updateSuggestions(Editor.java:3980)
       at android.widget.Editor$SuggestionsPopupWindow.show(Editor.java:3833)
       at android.widget.Editor.replace(Editor.java:435)
       at android.widget.Editor$3.run(Editor.java:2359)
       at android.os.Handler.handleCallback(Handler.java:751)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6776)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Run Code Online (Sandbox Code Playgroud)

我发现的唯一与我的问题类似的事情是这个,但那家伙无法解决它。

我怎样才能知道是什么原因造成的,以便寻找解决方案?

编辑

好的,我发现在我的大型代码的多个部分中正在使用此函数:

public static Spannable spannabletext(String message, int start, int end, String font_family, Typeface font) {

    Spannable spannable = new SpannableString(Html.fromHtml(message));
    spannable.setSpan(new CustomTypefaceSpan(font_family, font),
            start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

    return spannable;

}
Run Code Online (Sandbox Code Playgroud)

所以我猜测在某些时候这就是问题的根源。但由于我不想花几个小时试图猜测哪个文本和哪种语言(我的应用程序有 8 种不同的语言)是生成此崩溃的,所以我要等到它再次发生,但这次我添加了一些Crashlytics …

java android

5
推荐指数
1
解决办法
3899
查看次数

使用TimePicker或NumberPicker查看对话框首选项时旋转Android设备会导致应用程序崩溃

我做了一个自定义DialogPreference,它使用两个NumberPicker小部件,允许用户选择一天中的一小时以及另一个DialogPreference允许用户使用TimePicker小部件选择时间的自定义.

只要对话框未打开并且我旋转屏幕,一切都按预期工作.但是,如果对话框打开并且屏幕旋转,则整个应用程序崩溃.我已经在onSaveInstanceStateonRestoreInstanceState方法中放置了断点,并且已经验证了恢复所需的所有内容都是DialogPreference有序的,onDialogClosed每次都会使用我自定义中的所有其他自定义代码来触发该方法DialogPreference.

我正在建设以下内容:

  • 最低SDK:16
  • 目标SDK:20
  • 编译SDK:20
  • 构建工具:20.0.0

我正在Verizon Galaxy Nexus上运行Android 4.4.3(KitKat).

这是给出的堆栈跟踪:

java.lang.IndexOutOfBoundsException: setSpan (4 ... 4) ends beyond length 0
  at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1016)
  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:592)
  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588)
  at android.text.Selection.setSelection(Selection.java:76)
  at android.widget.EditText.setSelection(EditText.java:87)
  at android.widget.NumberPicker$SetSelectionCommand.run(NumberPicker.java:2123)
  at android.os.Handler.handleCallback(Handler.java:733)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:136)
  at android.app.ActivityThread.main(ActivityThread.java:5001)
  at java.lang.reflect.Method.invokeNative(Method.java)
  at java.lang.reflect.Method.invoke(Method.java:515)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
  at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)

android timepicker android-preferences numberpicker android-timepicker

2
推荐指数
1
解决办法
2653
查看次数