尝试了解hot以解决相当常见的异常:
Changing Realm data can only be done from inside a transaction.
下一个代码:
realm.isInTransaction();//returns true
realmList.add(object);//IllegalStateException is thrown
如上所述[{3}},很可能Realm.getDefaultInstance()
在几个地方使用。但事实并非如此,我刚刚删除了所有realm
实例用法。有没有办法理解它为什么会发生?因为异常消息完全没有意义:它表示事务应该从事务内部完成,同时realm.isInTransaction
返回true。 executeTransaction
无效。
答案 0 :(得分:0)
虽然异常消息在大多数情况下具有误导性,但问题出在不同的Realm
个实例中。检查整个代码并找到所有来电:Realm.getInstance
和Realm.getDefaultInstance
。如果领域对象由Realm.getInstance(x)
创建,则无法与Realm.getInstance(y)
或Realm.getDefaultInstance()
一起使用。