领域无法迁移

Wer*_*962 4 android realm android-studio realm-migration

我有一个要应用迁移的Realm模型。但是,当我应用迁移时,我得到了错误

Configurations cannot be different if used to open the same file. 
The most likely cause is that equals() and hashCode() are not overridden in the migration class: 
Run Code Online (Sandbox Code Playgroud)

在我的Activity类中,配置设置为:

realmConfiguration = new RealmConfiguration
                .Builder(this)
                .schemaVersion(0)
                .migration(new Migration())
                .build();
Run Code Online (Sandbox Code Playgroud)

我使用领域实例来获取一些值。然后我使用以下方法应用迁移:

RealmConfiguration config = new RealmConfiguration.Builder(this)
            .schemaVersion(1) // Must be bumped when the schema changes
            .migration(new Migration()) // Migration to run
            .build();

Realm.setDefaultConfiguration(config);
Run Code Online (Sandbox Code Playgroud)

当我打电话给realm = Realm.getDefaultInstance();我时:我得到上面的错误。我是否正确应用了迁移?

Epi*_*rce 5

您的迁移应如下所示:

public class MyMigration implements Migration {
    //... migration

    public int hashCode() {
       return MyMigration.class.hashCode();
    }

    public boolean equals(Object object) {
       if(object == null) { 
           return false; 
       }
       return object instanceof MyMigration;
    }
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*ior 1

您是否尝试过按照异常消息所示在班级中覆盖equalsand ?hashcodeMigration

The most likely cause is that equals() and hashCode() are not overridden in the migration class
Run Code Online (Sandbox Code Playgroud)