android – 使用新的realmconfiguration打开领域

android – 使用新的realmconfiguration打开领域,第1张

概述我现在在我的机器人中使用了Realm  新的RealmConfiguration.Builder(this).build(); 我稍后会阅读有关添加架构和迁移的可能性. 所以在我的应用程序的新版本中,我想添加迁移功能. 所以我将上面的行更改为: new RealmConfiguration.Builder(this) .schemaVersion(0) .migration(new Migrati 我现在在我的机器人中使用了Realm
新的RealmConfiguration.Builder(this).build();

我稍后会阅读有关添加架构和迁移的可能性.
所以在我的应用程序的新版本中,我想添加迁移功能.
所以我将上面的行更改为:

new RealmConfiguration.Builder(this) .schemaVersion(0) .migration(new Migration()) .build();

但现在我得到了错误

IllegalArgumentException: Configurations cannot be different if used to open the same file.

如何在不删除数据库的情况下更改配置

解决方法 我认为您的问题是您多次创建RealmConfiguration.这本身不应该是一个问题(尽管效率很低),但问题出现在您的Migration类中.在内部我们比较配置对象中的所有状态,如果你没有在Migration类中重写equals和hashCode,你有一个新的Migration().equals(new Migration())== false的情况,这会给你错误正在看到.

一种解决方案是添加:

public class Migration implements RealmMigration {  // Migration logic...  @OverrIDe  public int hashCode() {    return 37;  }  @OverrIDe  public boolean equals(Object o) {    return (o instanceof Migration);  }}
总结

以上是内存溢出为你收集整理的android – 使用新的realmconfiguration打开领域全部内容,希望文章能够帮你解决android – 使用新的realmconfiguration打开领域所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1134441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存