Bas*_*ein 20 android android-8.0-oreo
问题
自从升级到Android 8.0以来,我收到许多崩溃报告,说明IndexOutOfBoundsException这些报告发生在我的代码之外.
崩溃报告
没有代码
安卓 应用程序负责崩溃,它似乎是Android本身的一个错误.
java.lang.IndexOutOfBoundsException:
at android.text.SpannableStringBuilder.checkRange (SpannableStringBuilder.java:1314)
at android.text.SpannableStringBuilder.setSpan (SpannableStringBuilder.java:680)
at android.text.SpannableStringBuilder.setSpan (SpannableStringBuilder.java:672)
at android.view.accessibility.AccessibilityNodeInfo.setText (AccessibilityNodeInfo.java:2474)
at android.widget.TextView.onInitializeAccessibilityNodeInfoInternal (TextView.java:10357)
at android.view.View.onInitializeAccessibilityNodeInfo (View.java:7307)
at android.view.View.createAccessibilityNodeInfoInternal (View.java:7266)
at android.view.View.createAccessibilityNodeInfo (View.java:7251)
at android.view.accessibility.AccessibilityRecord.setSource (AccessibilityRecord.java:146)
at android.view.accessibility.AccessibilityRecord.setSource (AccessibilityRecord.java:119)
at android.view.View.onInitializeAccessibilityEventInternal (View.java:7203)
at android.widget.TextView.onInitializeAccessibilityEventInternal (TextView.java:10338)
at android.view.View.onInitializeAccessibilityEvent (View.java:7191)
at android.view.View.sendAccessibilityEventUncheckedInternal (View.java:7053)
at android.view.View.sendAccessibilityEventUnchecked (View.java:7038)
at android.view.View.sendAccessibilityEventInternal (View.java:7015)
at android.widget.TextView.sendAccessibilityEventInternal (TextView.java:10725)
at android.view.View.sendAccessibilityEvent (View.java:6982)
at android.widget.TextView.onSelectionChanged (TextView.java:9269)
at android.widget.TextView.spanChange (TextView.java:9505)
at android.widget.TextView$ChangeWatcher.onSpanRemoved (TextView.java:11943)
at android.text.SpannableStringInternal.sendSpanRemoved (SpannableStringInternal.java:408)
at android.text.SpannableStringInternal.removeSpan (SpannableStringInternal.java:243)
at android.text.SpannableString.removeSpan (SpannableString.java:50)
at android.text.Selection.removeSelection (Selection.java:109)
at android.text.method.LinkMovementMethod.onTakeFocus (LinkMovementMethod.java:239)
at android.widget.Editor.onFocusChanged (Editor.java:1163)
at android.widget.TextView.onFocusChanged (TextView.java:9586)
at android.view.View.handleFocusGainInternal (View.java:6593)
at android.view.View.requestFocusNoSearch (View.java:10823)
at android.view.View.requestFocus (View.java:10802)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3160)
at android.view.ViewGroup.onRequestFocusInDescendants (ViewGroup.java:3204)
at android.view.ViewGroup.requestFocus (ViewGroup.java:3163)
at android.view.View.requestFocus (View.java:10769)
at android.view.View.requestFocus (View.java:10711)
at android.view.ViewRootImpl.focusableViewAvailable (ViewRootImpl.java:3430)
at android.view.View.setFlags (View.java:13277)
at android.view.View.setVisibility (View.java:9378)
at android.app.Activity.makeVisible (Activity.java:5412)
at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3785)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2898)
at android.app.ActivityThread.-wrap11 (Unknown Source)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1593)
at android.os.Handler.dispatchMessage (Handler.java:105)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6541)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)
Run Code Online (Sandbox Code Playgroud)
可能的原因
因为它发生在TextView我认为它与我使用的这些元素有关:
<TextView
android:id="@+id/txtAlso"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textColor="#0000AA"
android:padding="5dp"
android:textIsSelectable="true"
android:text="" />
Run Code Online (Sandbox Code Playgroud)
试过的解决方案
为了有希望修复这个错误,我已经重写了TextViews下面的代码,删除isSelectable标记并阻止视图聚焦.由于我无法自己重现这个错误,所以希望尽快获得更多信息.如果有人有信息,见解或知道解决方案回复或评论.
<TextView
android:id="@+id/txtAlso"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textColor="#0000AA"
android:padding="5dp"
android:focusable="false" android:focusableInTouchMode="false"
android:text="" />
Run Code Online (Sandbox Code Playgroud)
小智 6
我的应用程序发生了同样的崩溃。经过大量的研究和测试,我设法重新创建它。崩溃仅发生在 Oreo Android 8.0 设备上,而且几乎只发生在三星设备上。
在我的情况下,当单击 Linkify 创建的链接时触发了 IndexOutOfBounds 异常。
Linkify.addLinks(text, path, null, matchFilter, transforFilter);
Run Code Online (Sandbox Code Playgroud)
我删除了 Linkify,并找到了另一种无需 Linkify 即可完成所需操作的方法。
| 归档时间: |
|
| 查看次数: |
1677 次 |
| 最近记录: |