gpt4 book ai didi

java - IndexOutOfBoundsException setSpan (34 ... 48) 结束超过长度 34

转载 作者:太空狗 更新时间:2023-10-29 14:40:49 26 4
gpt4 key购买 nike

我有一份指示 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)

我发现的唯一与我的问题相似的是 this但是那个人无法解决它。

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

编辑

好的,所以我发现在我的大代码的多个部分都使用了这个函数:

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;

}

所以我猜测在某些时候这就是问题的来源。但是因为我不想花很多时间来猜测是哪个文本和哪种语言(我的应用程序有 8 种不同的语言)是这个崩溃产生的我会等到它再次发生但是这次我添加了一些Crashlytics 行,以便我可以从崩溃报告中获取更多信息。所以我的 spannabletext 函数现在是这样的:

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

Crashlytics.setString("activity", activity.getLocalClassName());
Crashlytics.setString("message", message);
Crashlytics.setInt("start", start);
Crashlytics.setInt("end", end);

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

return spannable;

}

我会及时通知你..

最佳答案

错误不是由您的代码引起的。查看堆栈:在 android.widget.Editor$SuggestionsPopupWindow.updateSuggestions(Editor.java:3980) 长按文本以显示 PopWindow 时发生。所以这是一个框架错误,不是你的。

这个答案更好:EditText crashing on clearing text

Problem is "updateSuggestions" try to setSpan after you change text in EditText. So you need make text change after editor modify EditText. Just put your code in view.post

mEditText.post {
mEditText.setText("your text")
}

关于java - IndexOutOfBoundsException setSpan (34 ... 48) 结束超过长度 34,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48577562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com