Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
Out of range in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsResults.cpp line 108(requested: 0 valid: 0) io.realm.internal.OsResults.nativeGetRow
MainActivity.randomizeEvents (MainActivity.java:1600)
...MainActivity$42.run (MainActivity.java:1739)randomizeEvents()
public void randomizeEvents() {
Realm nrealm;
nrealm = Realm.getDefaultInstance();
RealmResults<Event> eventList = nrealm.where(Event.class).equalTo("theevent", "theevent").findAll();
if(eventList.size() != 0) {
evt = eventList.get(0); <<<<<<<<<line 1600
nrealm.beginTransaction();
evt.setDurations();
nrealm.commitTransaction();
}
}方法启动可运行的
RealmResults<Event> eventList = realm.where(Event.class).equalTo("theevent", "theevent").findAll();
evt = eventList.get(0);
if(!eventTimerRunning) {
runnable = new Runnable() {
public void run() {
if(!realm.isClosed()) {
eventTimerRunning = true;
randomizeEvents(); <<<<<<<<line 1739
handler.postDelayed(runnable, 30000);
}
}
};
handler.postDelayed(runnable, 5000);
}我在不同的地方得到了这个错误,但是他们都在做同样的事情。我有一个用于不同事物的Runnable。例如,这个方法将在初始延迟后每隔30分钟运行一次。由于在UI线程上使用一个实例和在Realm上使用一个实例等错误,我在Runnable中使用了一个新实例。
if语句是if(eventList.size() != 0),所以大小是1+。为什么eventList.size()等于或更多,但仍然得到eventList.get(0)为null的错误?
发布于 2018-06-15 05:57:44
你应该使用
eventList.size() 而不是
eventList.sizehttps://stackoverflow.com/questions/50866836
复制相似问题