android – 使用新的realmconfiguration打开领域

我现在在我的机器人中使用了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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...