【问题标题】:Realm.deleteRealmFile() deprecated android?Realm.deleteRealmFile() 已弃用 android?
【发布时间】:2015-07-01 13:51:00
【问题描述】:

现在 Realm.deleteRealmFile() 已被弃用,在 Android 应用程序中删除领域文件并实例化新文件的最佳方法是什么?

我尝试设置新配置,但遇到一堆领域迁移错误?这是为什么呢?

【问题讨论】:

    标签: android file migration realm


    【解决方案1】:

    根据 API 文档,您现在应该改用 DeleteRealm(RealmConfiguration),其中 RealmConfiguration 指定要删除的领域文件等。您可以在此处找到 API 文档:https://realm.io/docs/java/latest/api/

    【讨论】:

    • 还记得在 ReamConfiguration 中设置 schemaVersion。如果版本与您的 Realm 文件中的版本不匹配,您也会收到迁移错误。
    【解决方案2】:

    如果你陷入 MigrationNeededException 循环,试试这个,它会删除整个文件夹并重建 Realm。

     private void rebuildDatabase() {
            RealmConfiguration realmConfig = new RealmConfiguration.Builder(getApplicationContext())
                    .name(getString(R.string.realm_file_name))
                    .deleteRealmIfMigrationNeeded()
                    .build();
            Realm.deleteRealm(realmConfig);
            File dir = realmConfig.getRealmFolder();
            if (dir.isDirectory())
            {
                String[] children = dir.list();
                for (int i = 0; i < children.length; i++)
                {
                    new File(dir, children[i]).delete();
                }
            }
            Realm.setDefaultConfiguration(realmConfig);
            Realm newRealm = Realm.getInstance(this);
            newRealm.close();
        }
    

    【讨论】:

      猜你喜欢
      • 2012-12-25
      • 2021-08-31
      • 2015-09-18
      • 2018-02-11
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多