我们在应用程序中使用Realm数据库已有一段时间,但最近我们注意到一些用户发出了一些奇怪的日志,这些日志涉及Realm无法打开实例,原因是该领域缺乏权限.lock
此问题是随机出现的,这意味着该问题是在我们代码的许多不同位置触发的,但是根本不是系统地触发的。即使在实例成功几次打开(和关闭)之后,它还是发生了。 我们无法复制它。 它发生在Android 7.0上的Samsung SMT-580上。 在我们的应用中,我们使用的是Realm 4.2.0
正如我所说,当我们尝试打开Realm实例时会发生这种情况,例如:
Realm realmInstance = Realm.getDefaultInstance();
try {
RealmResults<Object> results = realmInstance.where(...).findAll();
...
}
finally {
realmInstance.close();
}
我们收到的错误是:
”无法在路径上打开领域 '/data/data/com.xxx/files/default.realm.lock'。请使用以下路径 您的应用具有读写权限。 (open(“ / data / data / com.xxx / files / default.realm.lock”)失败:只读 文件系统)(/data/data/com.xxx/files/default.realm.lock)在 /home/cc/repo/realm/release/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp 第101行”
我们不知道为什么会这样,为什么这个问题似乎最近才出现(我们在这部分没有做任何更改)
我们在Realm Github上发现了这个问题: https://github.com/realm/realm-java/issues/5715 但不确定是否真的有关联