android - Android Realm - 无法在路径打开领域:read_only 文件系统
问题描述
我们在我们的应用程序中使用 Realm 数据库已经有一段时间了,但最近我们注意到一些来自我们的一些用户的奇怪日志,关于 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/领域/领域库/src/main/cpp/io_realm_internal_OsSharedRealm.cpp 第 101 行"
我们不知道为什么会发生这种情况,以及为什么最近似乎出现了这个问题(我们没有对这部分进行任何更改)
我们在 Realm Github 上发现了这个问题: https ://github.com/realm/realm-java/issues/5715 但不确定这是否真的相关
解决方案
推荐阅读
- r - ggplot2。如何根据背景更改数据标签的颜色(geom_segment)
- file - Grails AWS 插件。如何检查文件是否已成功上传到 S3
- javascript - $rootscope 在角度 Js 中抛出错误
- ios - 使用 AFNetworking 上传图片,内容类型为“application/x-www-form-urlencoded” SWift
- ios - MisplacedView,Frame在运行时会有所不同
- hive - sqoop 导入作业失败
- django - 以 csv 格式下载包含来自多个模型的数据的 zip 文件
- mysql - 从 BIND9 Mysql 到 BIND9 区域文件的迁移/转换
- java - 使用 OpenCV 扫描文档
- java - 如何使用流 API 获取集合