gpt4 book ai didi

android - 使用新的 Realm 配置打开 Realm

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:42 56 4
gpt4 key购买 nike

直到现在,我还在我的安卓系统中使用 Realm new 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 类中覆盖 equalshashCode 你有一个情况 new 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 - 使用新的 Realm 配置打开 Realm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36907001/

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com