Я использую realm
для databse processing
в моих android project
. И я получил отчет некоторых пользователей о crash
:Царство: Недопустимый формат файла Realm
java.lang.IllegalArgumentException: Illegal Argument: Invalid format of Realm file.
at io.realm.internal.SharedGroup.createNativeWithImplicitTransactions()(SourceFile:-2)
at io.realm.internal.SharedGroup.<init>()(SourceFile:64)
at io.realm.internal.SharedGroupManager.<init>()(SourceFile:49)
at io.realm.BaseRealm.<init>()(SourceFile:77)
at io.realm.Realm.<init>()(SourceFile:138)
at io.realm.Realm.createAndValidate()(SourceFile:269)
at io.realm.Realm.createInstance()(SourceFile:249)
at io.realm.RealmCache.createRealmOrGetFromCache()(SourceFile:114)
at io.realm.Realm.getInstance()(SourceFile:213)
Я никогда не сталкиваются аварии при разработке, но, кажется, что мой пользователь получил его во много раз. Ниже моя реализация, которая была обнаружена авария:
private Realm getRealmFromConfig(Context context) {
RealmConfiguration config = getRealmConfigByDBName(context, databaseName);
Realm.compactRealm(config);
return Realm.getInstance(config);
}
public RealmConfiguration getRealmConfigByDBName(Context context, String dbName) {
RealmConfiguration config = new RealmConfiguration.Builder(context)
.name(dbName)
.schemaVersion(1)
.setModules(new Module())
.deleteRealmIfMigrationNeeded()
.build();
return config;
}
краш-журнал отмечает, что аварии происходят в линии return Realm.getInstance(config);
я взглянуть на Realm.java файл, но до сих пор не может получить больше информации, которая связанным с сообщением Invalid format of Realm file
. Так что любой может помочь мне дать решение или обходное решение, которое может решить проблему или какую-то теорию о том, почему происходит сбой.
Большое спасибо!
Я - разработчик Realm. Пожалуйста, укажите это в github, поскольку это звучит как потенциальная ошибка в 'Realm.compactRealm()'. – geisshirt
Да, @geisshirt, я нашел тему здесь https://github.com/realm/realm-java/issues/2746, но его решение не работало для меня :(Так что эта ошибка будет исправлена в следующей версии или должна Я должен сделать некоторые трюки? –
Если вы можете заполучить недопустимый файл, мы будем очень рады, если вы сможете отправить нам его. – geisshirt