【问题标题】:Opening Realm files of format version 0 is not supported by this version of Realm此版本的 Realm 不支持打开格式版本 0 的 Realm 文件
【发布时间】:2020-05-31 11:33:29
【问题描述】:

去年我们一直在使用 Realm,我们最近将应用程序从 V6.1.0 升级到 V7.0.0,升级后我们目睹了提到的崩溃,我们正在使用 Kotlin 用于使用 Realm java 进行应用程序开发,最后,我们启用了数据库加密

java.lang.RuntimeException: Unable to create application com.myapp.Application: io.realm.exceptions.RealmFileException: Opening Realm files of format version 0 is not supported by this version of Realm (Database has an unsupported version and cannot be upgraded
Exception backtrace:
(/data/data/com.myapp.Application:/files/myapp.realm) in /Users/cm/Realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 107 Kind: FORMAT_UPGRADE_REQUIRED.
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(Native Method)
at io.realm.internal.OsSharedRealm.(OsSharedRealm.java:175)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:251)
at io.realm.BaseRealm.(BaseRealm.java:137)
at io.realm.BaseRealm.(BaseRealm.java:104)
at io.realm.Realm.(Realm.java:163)
at io.realm.Realm.createInstance(Realm.java:499)
at io.realm.RealmCache.createInstance(RealmCache.java:507)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:473)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:414)
at io.realm.Realm.getDefaultInstance(Realm.java:407)```


【问题讨论】:

    标签: java android realm


    【解决方案1】:

    7.0.o 仍处于测试阶段,我相信他们会在稳定时增加对迁移的支持。 此外,我不建议将其用于 beta 阶段的生产。

    【讨论】:

    【解决方案2】:

    在我更新 Realm 版本后,这对我来说是一个迁移问题。删除迁移块中的所有旧 RealmModel 将无济于事。在这种情况下需要删除整个 Realm 数据库。

    在 iOS 上,在 Realm 配置期间,存在属性 deleteRealmIfMigrationNeeded。通过将其设置为 true 为我解决了问题。

    据我了解,对于 Java,只需调用函数 .deleteRealmIfMigrationNeeded()。类似的东西:

    Realm.init(this);
    realmConfiguration = new RealmConfiguration.Builder()
                .schemaVersion(BuildConfig.REALM_SCHEMA_VERSION)
                .migration((realm, oldVersion, newVersion) -> RealmAutoMigration.migrate(realm))
                .deleteRealmIfMigrationNeeded()
                .build();
    
    Realm.setDefaultConfiguration(realmConfiguration);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多