android:从资产加载Realm db文件时出错

时间:2016-06-15 19:37:49

标签: android realm

我从我们的iOS应用程序获得了一个领域db文件,并希望将其作为我们Android应用程序的一部分发布。这是我们第一次发货,因此没有迁移问题。所以,我清理安装了应用程序并尝试使用以下代码在活动中运行它:

RealmConfiguration config = new     RealmConfiguration.Builder(TestActivity.this)
                    .name(Realm.DEFAULT_REALM_NAME)
                    .assetFile(TestActivity.this, MY_DB_FILE_NAME)
                    .build();


            Realm.setDefaultConfiguration(config);
            Log.d(TAG,"Config schema version"+config.getSchemaVersion());
            Realm realm = Realm.getDefaultInstance();
            if (realm.isEmpty()) {
                subscriber.onError(new Exception("Realm db is empty"));
            } else {
                realm.close();
                subscriber.onCompleted();
            }

我正在使用领域1.0.0

来自我的gradle:

    classpath "io.realm:realm-gradle-plugin:1.0.0"

问题:我在下面看到异常。

java.lang.IllegalArgumentException:光盘上的Realm比指定的更新:v1与v0

这是我第一次加载,没有迁移。为什么我会收到此错误?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果你没有指定架构版本,Realm会认为它是0而你的资产是1.这在后来Realm得到内部评估时会被注意到。您可以通过提供版本来解决此问题。

RealmConfiguration config = new       RealmConfiguration.Builder(TestActivity.this)
                .name(Realm.DEFAULT_REALM_NAME)
                .assetFile(TestActivity.this, MY_DB_FILE_NAME)
                .schemaVersion(1)
                .build();