io.realm.exceptions.RealmFileException: недопустимая мнемоника.ошибка - PullRequest
0 голосов
/ 27 ноября 2018

Я столкнулся с этой ошибкой

io.realm.exceptions.RealmFileException: Невозможно открыть область по пути Недопустимая мнемоника. "

Я искал в Интернете, чтобы найтичто на данный момент это нерешенная проблема в ядре сфер. Я хотел бы задать две вещи:

1) Я пытался повторно запускать следующий код каждый раз, когда приложение открывается, и оно исправило эту проблему для меня. -

RealmConfiguration config = new RealmConfiguration.Builder()
                .encryptionKey(key)
                .schemaVersion(0)
                .migration(new Migration())
                .build();
Realm.setDefaultConfiguration(config);

Это исправление? Есть ли какое-нибудь лучшее решение для этого?

2) Каков предписанный для царства способ инициализации конфигурации царства? Мы перезапускаем приведенный выше код каждый разнаше приложение открывается или мы делаем это только один раз и используем Realm.setDefaultConfiguration и флаг, чтобы увидеть, было ли оно установлено или нет?

Шаги для воспроизведения и некоторые подробности о моем приложении приведены ниже: -

1) Приложение открывается в первый раз, когда этот код проверяет необходимость установки конфигурации по умолчанию:

 boolean cond1 = mSharedPreferenceManager.checkKeyExistence(UtilityManager.IS_DEFAULT_CONFIG_INITIALISED,SharedPreferenceManager.USER_AUTH_STORE);

        if(!cond1) {
            RealmConfiguration config = new RealmConfiguration.Builder()
                    .encryptionKey(key)
                    .schemaVersion(0)
                    .migration(new Migration())
                    .build();
            Realm.setDefaultConfiguration(config);
            mSharedPreferenceManager.saveToPreferences(true, UtilityManager.IS_DEFAULT_CONFIG_INITIALISED, SharedPreferenceManager.USER_AUTH_STORE);
        }

Поскольку я установил флаг при первой установке, приведенный выше кодв блоке if не запускается в следующий раз.

2) Когда я открываю приложение в следующий раз, запускается только Realm.init(this); и код вылетает с мнемонической ошибкой.

Некоторые существенные подробности об использовании области в приложении. В настоящее время миграция отсутствуетпроисходит в приложении просто пустой класс заполнителя.Существует только одна область базы данных с именем default.realm.

Stacktrace ниже

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.app5, PID: 4419 java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.example.app5 / com.example.app5.ui.MainActivity}: io.realm.exceptions.RealmFileException: невозможно открыть область по пути '/data/data/com.example.app5 / files / default.realm ': недопустимая мнемоника.top_ref [0]: D80ED9100000019C, top_ref [1]: CDD91816A436DE3C, мнемоника: B9 A4 9D 6E, fmt [0]: 41, fmt [1]: 206, флаги: FE.(Недопустимая мнемоника. Top_ref [0]: D80ED9100000019C, top_ref [1]: CDD91816A436DE3C, мнемоника: B9 A4 9D 6E, fmt [0]: 41, fmt [1]: 206, флаги: FE) (/ data / data / com.example.app5 / files / default.realm) в /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp строка 101 Вид: ACCESS_ERROR.на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2913) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3048) на android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78) на андроиде.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:68) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java and1808).os.Handler.dispatchMessage (Handler.java:106) на android.os.Looper.loop (Looper.java:193) на android.app.ActivityThread.main (ActivityThread.java:6669) на java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:493) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858) Причина:io.realm.exceptions.RealmFileException: невозможно открыть область по пути '/data/data/com.example.app5/files/default.realm': Invалид мнемоник.top_ref [0]: D80ED9100000019C, top_ref [1]: CDD91816A436DE3C, мнемоника: B9 A4 9D 6E, fmt [0]: 41, fmt [1]: 206, флаги: FE.(Недопустимая мнемоника. Top_ref [0]: D80ED9100000019C, top_ref [1]: CDD91816A436DE3C, мнемоника: B9 A4 9D 6E, fmt [0]: 41, fmt [1]: 206, флаги: FE) (/ data / data / com.example.app5 / files / default.realm) в /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp строка 101 Вид: ACCESS_ERROR.в io.realm.internal.OsSharedRealm.nativeGetSharedRealm (собственный метод) в io.realm.internal.OsSharedRealm. (OsSharedRealm.java:171) в io.realm.internal.OsSharedRealm.getInstance (OsShared):в io.realm.internal.OsSharedRealm.getInstance (OsSharedRealm.java:231) в io.realm.RealmCache.doCreateRealmOrGetFromCache (RealmCache.java:318) в io.realm.RealmCache.cjet RealCacherealm.Realm.getDefaultInstance (Realm.java:407) на com.example.app5.ui.MainActivity.populate (MainActivity.java:322) на com.example.app5.ui.MainActivity.onCreate (MainActivity.java:225)на android.app.Activity.performCreate (Activity.java:7136) на android.app.Activity.performCreate (Activity.java:7127) на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1271) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2893) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3048) в android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78) в android.app.serransransaction..executeCallbacks (TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1808) в android.os.Handler.dispatchMessage (Handler.java:106) в android.os.Looper.loop (Looper.Java: 193) в android.app.ActivityThread.main (ActivityThread.java:6669) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.Java: 493) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858) 2018-11-28 12: 38: 43.356 1844-1917 /?E / InputDispatcher: канал 'ba15b10 com.example.app5 / com.example.app5.ui.SplashActivity (server)' ~ Канал неисправим и поврежден и будет удален!2018-11-28 12: 38: 43.441 2537-3071 /?E / s.nexuslaunche: Не удалось открыть APK '/data/app/com.example.app5-Ozu0pufh-sj1_M7EbxGkXA==/base.apk' Ошибка ввода-вывода 2018-11-28 12: 38: 43.441 2537-3071 /?E / ResourcesManager: не удалось добавить путь к ресурсу /data/app/com.example.app5-Ozu0pufh-sj1_M7EbxGkXA==/base.apk 2018-11-28 12: 38: 44.092 2805-2907 /?E / ActivityThread: не удалось найти информацию о поставщике для com.google.android.apps.gsa.testing.ui.audio.recorded

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...