# #java #android #firebase #android-studio #crashlytics
Вопрос:
Я использую 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)
Мой код адаптации треков:
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
}
Ответ №1:
Вы всегда должны проверять, чтобы аргумент, который вы передаете конструктору вашего адаптера, не был нулевым и не был пустым, но если вы этого не сделаете, вы можете проверить это внутри getItem
метода:
@Override
public Object getItem(int position) {
pos = position;
if (trackItems != null amp;amp; trackItems.size() > position) {
return trackItems.get(position); // Line 54.
}
return null;
}
Ответ №2:
проверьте getCount() > position
, есть ли в trackItems элементы, прежде чем звонить getItemId
и getItem