我的应用程序具有Realm方案版本3。 当另一个应用程序查询我的内容提供商时,我会请求Realm的实例:
Realm.init(getContext());
Realm realm1 = Realm.getDefaultInstance();
提供商偶尔会陷入异常:
E / REALM_JNI:引发了异常:非法参数:提供 模式版本0小于最后设置的版本3。
它只会在一段时间内的第一次查询中发生,在任何时间都可以正常工作之后不久就查询提供程序。
我试图通过将Scheme版本显式设置为3来避免这种情况,但我仍然不时收到此异常
我什至尝试过这种方式:
Realm.init(getContext());
Realm realm1;
try {
// explicitly set scheme version and try to get new instance
RealmConfiguration realmConfiguration = new RealmConfiguration
.Builder()
.schemaVersion(RealmSchemaVersion)
.migration(new RealmMigrationAgent())
.build();
realm1 = Realm.getInstance(realmConfiguration);
}
catch (RealmException e) {
// if failed - get existing one
realm1 = Realm.getDefaultInstance();
}
在catch
块中我仍然遇到相同的异常
如何解决此问题?