gpt4 book ai didi

Java Realm 超出范围异常

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:09 28 4
gpt4 key购买 nike

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();
}

}

启动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 线程上使用一个实例和在 runnable 上使用一个实例等错误,我在 Runnable 中使用了 Realm 的新实例。

if 语句为 if(eventList.size() != 0),因此大小为 1+。为什么 eventList.size() 等于 1 或更大,但仍然收到有关 eventList.get(0) 为 null 的错误?

最佳答案

你应该使用

eventList.size() 

而不是

eventList.size

关于Java Realm 超出范围异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50866836/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com