【问题标题】:Fatal Exception: java.lang.IndexOutOfBoundsException Invalid index 0, size is 0致命异常:java.lang.IndexOutOfBoundsException 无效索引 0,大小为 0
【发布时间】:2021-07-12 16:07:45
【问题描述】:

我使用 Firebase Crashlytics,我发现很多用户都有这个崩溃问题。 我找不到任何解决这个问题的方法,我的 40% 的用户都因为这个错误而崩溃。我该如何解决这个问题?

谢谢。

"Fatal Exception: java.lang.IndexOutOfBoundsException
Invalid index 0, size is 0"

ui.TracksAdapter.getItem (TracksAdapter.java:54)

ui.TracksAdapter.getItemId (TracksAdapter.java:59)

我的 TracksAdapter 代码:

public TracksAdapter(Context context, List<Track> rowItems) {
    this.context = context;
    this.trackItems = rowItems;
}

@Override
public int getCount() {
    return trackItems.size();
}

@Override
public Object getItem(int position) {
    pos = position;
    return trackItems.get(position); // Line 54.
}

@Override
public long getItemId(int position) {
    return trackItems.indexOf(getItem(position)); // Line 59
}

【问题讨论】:

    标签: java android firebase android-studio crashlytics


    【解决方案1】:

    您应该始终检查您传递给适配器构造函数的参数是否为 null 且不为空,但如果您不这样做,您可以在 getItem 方法中检查:

    @Override
    public Object getItem(int position) {
        pos = position;
        if (trackItems != null && trackItems.size() > position) {
            return trackItems.get(position); // Line 54.
        }
        return null;
    }
    

    【讨论】:

      【解决方案2】:

      在调用getItemIdgetItem 之前检查getCount() &gt; position 是否确认trackItems 中有项目

      【讨论】:

        猜你喜欢
        • 2013-07-29
        • 1970-01-01
        • 2016-05-11
        • 2016-12-28
        • 2020-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多