Открытие экземпляра области от провайдера контента попадает в исключение - PullRequest
0 голосов
/ 24 марта 2019

Мое приложение имеет схему 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 блоке

Как это исправить?

...