IndexOutOfBoundsException:charAt:49> = length 69

时间:2011-12-29 08:02:03

标签: android

通过针对Android游戏应用的错误报告获取一些奇怪的异常。

导致问题的具体代码是(mOutroTextLayout是一个StaticLayout对象):

if(mOutroTextLayout != null) {
    canvas.save();
    canvas.translate((25 * mScale) + 0.5f, (78 * mScale) + 0.5f);
    mOutroTextLayout.draw(canvas); // This is line 903
    canvas.translate(-((25 * mScale) + 0.5f), -((78 * mScale) + 0.5f));
    canvas.restore();
}

它生成的异常错误:

java.lang.IndexOutOfBoundsException: charAt: 49 >= length 69
    at android.text.SpannableStringBuilder.charAt(SpannableStringBuilder.java:112)
    at android.text.Layout.getLineVisibleEnd(Layout.java:967)
    at android.text.Layout.draw(Layout.java:267)
    at android.text.Layout.draw(Layout.java:153)
    at com.myapps.android.myapp.MapView.onDraw(MapView.java:903)
    at com.myapps.android.myapp.MapThread.run(MapThread.java:83)

让我感到困惑的是49> =长度69错误消息。我暗示了线程/同步的问题,其中mOutroTextLayout在一个线程中创建/修改,并在另一个线程中访问?

0 个答案:

没有答案