以下のスタック トレースに似たスタック トレースを含む Crittercism クラッシュ レポートをいくつか受け取りました。クラッシュは私のコードが原因ではありません。
このフォーラムの投稿は、TextView のカスタム OEM 実装のバグが原因である可能性があることを示唆しています:
https://groups.google.com/forum/?fromgroups=#!topic/android-developers/_53F4WBM8-I
これが事実であるかどうか、誰でも確認できますか?影響を受けるユーザーはごくわずかですが、修正/回避策があるかどうか知りたいですか?
これまでのところ、私のクラッシュ レポートには、次のデバイスが影響を受けていることが示されています。
- OS 2.3.6 上の ALCATEL ONE TOUCH 903
- OS 2.3.6 上の ALCATEL ONE TOUCH 918D
- OS 2.3.6 上の ALCATEL ONE TOUCH 991D
- OS 2.3.5 上のオウム
- OS 2.3.4 上の A102S_MULA
- OS 2.3.5 上の T9199+
- OS 2.3.6 上のトライデント A7
のスタック トレースStringIndexOutOfBoundsException
:
java.lang.StringIndexOutOfBoundsException
at java.lang.String.getChars(String.java:1059)
at android.text.SpannableStringInternal.getChars(SpannableStringInternal.java:102)
at android.text.TextUtils.getChars(TextUtils.java:101)
at android.text.Layout.processToSupportEmoji(Layout.java:3752)
at android.text.Layout.supportTabandEmoji(Layout.java:3790)
at android.text.Layout.measureText2(Layout.java:3148)
at android.text.Layout.getDesiredWidth2(Layout.java:183)
at android.text.Layout.getDesiredWidth2(Layout.java:161)
at android.widget.TextView.onMeasure2(TextView.java:5950)
at android.widget.TextView.onMeasure(TextView.java:6163)
at android.view.View.measure(View.java:8396)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:612)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:396)
at android.view.View.measure(View.java:8396)
at android.widget.ListView.setupChild(ListView.java:1862)
at android.widget.ListView.makeAndAddView(ListView.java:1789)
at android.widget.ListView.fillDown(ListView.java:705)
at android.widget.ListView.fillFromTop(ListView.java:762)
at android.widget.ListView.layoutChildren(ListView.java:1625)
at android.widget.AbsListView.onLayout(AbsListView.java:1299)
at android.view.View.layout(View.java:7225)
at android.widget.FrameLayout.onLayout(FrameLayout.java:369)
at android.view.View.layout(View.java:7225)
at android.widget.FrameLayout.onLayout(FrameLayout.java:369)
at android.view.View.layout(View.java:7225)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1520)
at android.view.View.layout(View.java:7225)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1285)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1161)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1078)
at android.view.View.layout(View.java:7225)
at android.widget.FrameLayout.onLayout(FrameLayout.java:369)
at android.view.View.layout(View.java:7225)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:943)
at android.view.View.layout(View.java:7225)
at android.widget.FrameLayout.onLayout(FrameLayout.java:369)
at android.view.View.layout(View.java:7225)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1285)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1161)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1078)
at android.view.View.layout(View.java:7225)
at android.widget.FrameLayout.onLayout(FrameLayout.java:369)
at android.view.View.layout(View.java:7225)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1189)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1914)
at android.os.Handler.dispatchMessage(Handler.java:130)
at android.os.Looper.loop(SourceFile:351)
at android.app.ActivityThread.main(ActivityThread.java:3833)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
at dalvik.system.NativeStart.main(Native Method)
は次のIndexOutOfBoundsException
とおりです。
java.lang.IndexOutOfBoundsException: getChars (6 ... 8) ends beyond length 7
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1104)
at android.text.SpannableStringBuilder.getChars(SpannableStringBuilder.java:1008)
at android.text.TextUtils.getChars(TextUtils.java:101)
at android.text.Layout.processToSupportEmoji(Layout.java:3752)
at android.text.Layout.supportTabandEmoji(Layout.java:3790)
at android.text.StaticLayout.generate2(StaticLayout.java:722)
at android.text.DynamicLayout.reflow(DynamicLayout.java:404)
at android.text.DynamicLayout.access$000(DynamicLayout.java:70)
at android.text.DynamicLayout$ChangeWatcher.reflow(DynamicLayout.java:592)
at android.text.DynamicLayout$ChangeWatcher.onTextChanged(DynamicLayout.java:604)
at android.text.SpannableStringBuilder.sendTextChange(SpannableStringBuilder.java:1050)
at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:470)
at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:387)
at android.text.SpannableStringBuilder.replaceInternal(SpannableStringBuilder.java:593)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:542)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:527)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:67)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:701)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:227)
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:153)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:304)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:106)
at android.os.Handler.dispatchMessage(Handler.java:130)
at android.os.Looper.loop(SourceFile:351)
at android.app.ActivityThread.main(ActivityThread.java:3833)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
at dalvik.system.NativeStart.main(Native Method)