Android 领域事务状态异常
试图理解热修复非常常见的异常:Android 领域事务状态异常,android,database,realm,Android,Database,Realm,试图理解热修复非常常见的异常: 只能从事务内部更改域数据。 下一个代码: realm.isInTransaction();//returns true realmList.add(object);//IllegalStateException is thrown 如前所述,很可能在多个地方使用了Realm.getDefaultInstance()。但事实并非如此,我只是删除了所有realm实例用法。有没有办法理解它为什么会发生?因为异常消息完全没有意义:它说事务应该在事务内部完成,同时real
只能从事务内部更改域数据。
下一个代码:
realm.isInTransaction();//returns true
realmList.add(object);//IllegalStateException is thrown
如前所述,很可能在多个地方使用了
Realm.getDefaultInstance()
。但事实并非如此,我只是删除了所有realm
实例用法。有没有办法理解它为什么会发生?因为异常消息完全没有意义:它说事务应该在事务内部完成,同时realm.isInTransaction
返回trueexecuteTransaction
没有帮助。尽管异常消息在大多数情况下具有误导性,但问题出现在不同的领域
实例中。检查整个代码并找到所有调用:Realm.getInstance
和Realm.getDefaultInstance
。如果realm对象是由realm.getInstance(x)
创建的,那么它不能与realm.getInstance(y)
或realm.getDefaultInstance()
一起使用,尽管异常消息在大多数情况下会产生误导,但问题出现在不同的realm
实例中。检查整个代码并找到所有调用:Realm.getInstance
和Realm.getDefaultInstance
。如果领域对象是由realm.getInstance(x)
创建的,那么它不能与realm.getInstance(y)
或realm.getDefaultInstance()
一起使用,请显示与该位置相关的所有代码。或者在问题重现的地方发布项目。@Divers很难发布整个项目。我只是想理解为什么异常消息毫无意义,或者我甚至会说是误导性的,换句话说,我要理解幕后发生了什么。很可能realmList
与另一个realm
实例关联,但没有代码我只能猜测。有没有方法检查这种关联?类似于某个领域。IsitaSociatedWith()
?您是从事务中获得的RealmObject中获得此领域列表的吗?请显示与该位置相关的所有代码。或者在问题重现的地方发布项目。@Divers很难发布整个项目。我只是想理解为什么异常消息毫无意义,或者我甚至会说是误导性的,换句话说,我要理解幕后发生了什么。很可能realmList
与另一个realm
实例关联,但没有代码我只能猜测。有没有方法检查这种关联?类似于realm.IsitaSociatedWith()
?您是从事务中获得的RealmObject中获得此领域列表的吗?