尝试从领域(0.82.1)更新对象时出现此错误:
rowIndex>可用行:0> 0
Realm realm = null;
try{
realm = Realm. getInstance ( context );
RealmResults<Track> results = realm.allObjects( Track.class )
.where()
.equalTo("fileType", type)
.equalTo("fileState", actualState)
.equalTo("fileName", fileName)
.findAll();
//At this point result.size() = 1
for( int i = 0; i < results.size(); i++ )
{
realm.beginTransaction();
results.get( i ).setFileState(newState);
realm.commitTransaction();
}
}catch ( RealmException e ) {
Log.d( TAG, e.getMessage());
}catch ( RealmIOException e ) {
Log.d( TAG, e.getMessage());
}catch ( Exception e ) {
Log.d( TAG, e.getMessage());
}
finally {
if (realm != null) {
realm.close();
}
}
我也尝试过使用Iterator,但是有相同的错误。
概括:
崩溃在for循环中。我捕获到的异常是:
rowIndex 0 > 0 - invalid!
jni: ThrowingException 7, rowIndex > available rows: 0 > 0
有什么办法吗?
发生这种情况是因为您正在修改要遍历的RealmResults。这是一个已知问题,您可以在此处关注其进度:https : //github.com/realm/realm-java/issues/640
解决方法是,可以在迭代过程中将要修改的对象保存在另一个列表中,然后迭代新列表以进行实际修改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句