繁体   English   中英

致命异常:java.lang.IndexOutOfBoundsException 无效索引 0,大小为 0

[英]Fatal Exception: java.lang.IndexOutOfBoundsException Invalid index 0, size is 0

我使用 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
}

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM