Мое приложение имеет схему Realm версии 3. Когда другое приложение запрашивает моего провайдера контента, я запрашиваю экземпляр Realm:
Realm.init(getContext());
Realm realm1 = Realm.getDefaultInstance();
каждый раз, когда провайдер попадает в исключение:
E / REALM_JNI: Возникло исключение: Недопустимый аргумент: Предоставленная версия схемы 0 меньше, чем последняя установленная версия 3.
Это происходит только для первого запросачерез некоторое время, запрос к провайдеру вскоре после этого любое количество раз работает идеально.
Я пытался избежать этого, явно устанавливая версию Схемы на 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
блоке
Как это исправить?