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)
随机事件()
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();
}
}
方法启动 Runnable
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
in 的一个新实例。Runnable
runnable
该if
语句if(eventList.size() != 0)
的大小为 1+。为什么会eventList.size()
等于 1 或更多,但仍然得到关于eventList.get(0)
为空的错误?