在 API 25 之前,将文件保存到私有应用存储是没有问题的。但是,将 compileSdkVersion 和 targetSdkVersion 设置为 25,这是不可能的 - 每当我尝试读/写文件(位于应用程序私有存储中)时,我都会得到 PERMISSION_DENIED 并且我的应用程序崩溃。
示例 1:这是 Realm 在调用 Realm.getDefaultInstance() 时抛出的异常:
io.realm.exceptions.RealmFileException:无法在路径“/data/data/[PACKAGE_NAME]/files/default.realm.management”处打开领域。请使用您的应用具有读写权限的路径。在 /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp 第 81 行种类:PERMISSION_DENIED。
示例 2:这是应用程序在尝试持久化文件时抛出的异常(在打开 FileOutputStream 时):
java.io.FileNotFoundException: /data/user/0/[PACKAGE_NAME]/files/[FILE_NAME] (权限被拒绝)
如前所述,我在 API 24 上没有这些问题。有人知道这个问题的可能原因是什么吗?