一小部分用户收到此错误:
由io.realm.exceptions.RealmFileException引起无法打开 路径领域
我已经完成了一些搜索,看起来这是由于损坏的域文件造成的。我已经输入以下代码来捕获错误,删除域并创建一个新域:
try {
final Realm realm = Realm.getDefaultInstance()
// realm opened successfully. Do nothing
realm.close();
} catch (RealmFileException e) {
// database corrupted. delete database
Realm.deleteRealm(NbcRealmConfiguration.getInstance().getRealmConfiguration(getApplicationContext()));
Realm.setDefaultConfiguration(new RealmConfiguration.Builder()
.name(getString(R.string.database_name))
.schemaVersion(REALM_SCHEMA)
.deleteRealmIfMigrationNeeded()
.build());
}
我的问题:
我无法复制此问题,因此无法测试此修复程序。 是否有人知道这是否是正确的方法,或者您能建议更好的方法吗?
提前致谢
答案 0 :(得分:1)
是否是"对"方式取决于你。这将重新创造领域,但我想知道这个领域如何开始腐败。
假设这是生产中的问题,我可能会继续解决这个问题。我会添加一些日志记录,以便您可以看到何时发生这种情况。然后我会优先考虑进一步研究这个问题。注意它何时发生以及以何种速度发生。寻找有助于确定根本原因的趋势或模式。进一步查看堆栈,看它是否总是来自相同的代码。
如果它不在生产中,并且没有干扰其他团队成员,那么我会留下问题,因为当出现活动问题时,故障排除会更容易。