Класс Bundle платформы Android, испытывающий исключение внутреннего массива за пределами границ

Я получаю сообщение об ошибке массива в приложении Android и не могу понять, как решить эту проблему. Кажется, что все соответствующие проверки сделаны.

Мой код выглядит следующим образом:

private final Handler handler = new Handler() {
    @Override
    public void handleMessage(android.os.Message msg) {
        if (msg.what == GLES20VideoRenderer.MESSAGE_TIMING) {
            Bundle data = msg.getData();

            if ((data != null) && !data.isEmpty()) {
                    if (data.containsKey("utc_timestamp_ms")) {
                        updateTimeDisplay(data.getLong("utc_timestamp_ms"));
                    }

                    if (data.containsKey("streaming")) {
                        if (overlayBusy != null) {
                            if (overlayBusy.getVisibility() != View.INVISIBLE) {
                                overlayBusy.setVisibility(View.INVISIBLE);
                            }
                        }
                    }
            }
        }
    }
};

Я получаю следующую ошибку:

10-30 07:53:07.923: E/AndroidRuntime(19371): java.lang.ArrayIndexOutOfBoundsException: length=0;    index=0
10-30 07:53:07.923: E/AndroidRuntime(19371):    at android.util.ArrayMap.indexOf(ArrayMap.java:113)
10-30 07:53:07.923: E/AndroidRuntime(19371):    at android.util.ArrayMap.get(ArrayMap.java:366)
10-30 07:53:07.923: E/AndroidRuntime(19371):    at android.os.Bundle.getLong(Bundle.java:1029)
10-30 07:53:07.923: E/AndroidRuntime(19371):    at android.os.Bundle.getLong(Bundle.java:1016)

Любая помощь будет оценена.

1 ответ

https://code.google.com/p/android/issues/detail?id=76888

Это может быть вызвано возможным состоянием гонки в устройствах с ОС<5.1.

Другие вопросы по тегам