三星Android 13输入法Span引发ANR与崩溃问题求解决方案
三星定制输入法导致EditText ANR/崩溃问题及求助
问题现象
ANR(应用无响应)
当EditText中使用Span时,三星输入法会在文本编辑过程中让Span数量呈指数级增长,约15-20秒后引发ANR。每次点击EditText都会生成新的Span,该倍增行为发生在SpannableStringBuilder.replace方法中,但三星使用自有实现无法查看源码。
ANR堆栈信息:
android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:930) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:934) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:914) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:934) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:914) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:934) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:934) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:914) android.text.SpannableStringBuilder.countSpans (SpannableStringBuilder.java:934) android.text.SpannableStringBuilder.getSpans (SpannableStringBuilder.java:885) android.text.SpannableStringBuilder.getSpans (SpannableStringBuilder.java:863) androidx.emoji2.text.SpannableBuilder.getSpans (SpannableBuilder.java:159)
崩溃
尝试将输入类型设置为visible-password或email-address可阻止Span倍增,但会触发崩溃,崩溃通常在开始编辑文本时发生。
崩溃日志:
Fatal Exception: java.lang.IndexOutOfBoundsException setSpan (0 ... -1) has end before start
影响范围
目前相关问题提及较少,但所有使用Span的代码库均可能受影响,例如Grammarly也曾遇到相同问题。
求助
- 是否有人找到其他解决方案?
- 是否有人也在受三星Android 13更新带来的此问题困扰?
若有进展我会及时更新。
内容的提问来源于stack exchange,提问作者HellCat2405
相关产品推荐
相关产品推荐

