【发布时间】:2022-07-25 14:51:37
【问题描述】:
我正在使用 Room DB 在 android 中本地保存数据。
现在,即使用户卸载应用程序或清除存储,我也想保留数据。
所以,我在以下位置创建了 Room DB。
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getPath()
一切正常。
但是如果我清除存储或卸载应用程序并再次打开应用程序,我会收到以下错误。
原因:java.util.concurrent.ExecutionException:android.database.sqlite.SQLiteCantOpenDatabaseException:无法打开数据库'/storage/emulated/0/Download/database/hhcf':文件/storage/emulated/0/Download/数据库/hhcf 不可读
这个问题出现在 Android 11 中。对于 Android 9 没有异常。
我也授予了以下权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
还有,
android:requestLegacyExternalStorage="true"
在应用程序标签中。
任何帮助将不胜感激。
【问题讨论】:
-
嗨,你找到解决办法了吗?
标签: android database sqlite android-room android-11