Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我在本地文件夹中存储领域数据库时,我的应用程序在android 11上崩溃了?_Java_Android_Database_Realm - Fatal编程技术网

Java 当我在本地文件夹中存储领域数据库时,我的应用程序在android 11上崩溃了?

Java 当我在本地文件夹中存储领域数据库时,我的应用程序在android 11上崩溃了?,java,android,database,realm,Java,Android,Database,Realm,当我要将realm数据库保存到本地内部存储时,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_re

当我要将realm数据库保存到本地内部存储时,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中的存储权限完全改变了应用程序访问它的方式。现在,应用程序不能访问除自己的数据目录以外的其他存储。一些不访问文件系统就无法工作的应用程序(如file manager)需要具有所有文件访问权限。 你的应用程序在android 11中崩溃,很可能是因为它没有在存储上写入的权限。
更多信息-

阅读文档后,我通过将getExternalStorageDirectory替换为context.getExternalFilesDir()解决了这个问题;将领域数据库本地保存在文件夹中以进行备份


您是否知道我应该添加哪些权限或代码?任何关于@praventry的想法都可以使用存储访问框架(SAF)访问存储,搜索如何实现它。