如何解决当我将领域数据库本地存储在文件夹中时,我的App在android 11上崩溃了吗?
当我要将领域数据库保存在本地内部存储中时,该应用程序在Android 11上崩溃。该应用程序可以在所有其他版本上运行,但今天我将其应用程序更新为android 11,并且崩溃了。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: PID: 7882
io.realm.exceptions.RealmError: Unrecoverable error. open() Failed: Operation not permitted in io_realm_internal_Group.cpp line 210
at io.realm.internal.Group.nativeWritetoFile(Native Method)
private Realm realm;
try {
File file = new File(folderPath);
if (!file.exists()) {
file.mkdir();
}
realm = new File(file,fileName);
if (realm .exists()) {
realm .delete();
}
realm.writecopyTo(realm ); // crashing here in this line
} catch (IOException e) {
e.printstacktrace();
}
解决方法
在android 11中,关于应用访问方式的存储权限已完全更改。现在,应用程序只能访问自己的数据目录,而不能访问其他存储。某些无法访问文件系统的应用程序(例如文件管理器)需要具有所有文件访问权限。 您的应用在android 11中崩溃,最有可能是因为它没有在存储上进行写入的权限。 有关更多信息-Read here
,阅读文档后,我通过将getExternalStorageDirectory替换为context.getExternalFilesDir();解决了该问题。将领域数据库本地保存在要备份的文件夹中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。