API 25 より前は、プライベート アプリ ストレージにファイルを保存しても問題ありませんでした。ただし、compileSdkVersion と targetSdkVersion が 25 に設定されていると、これは不可能です。(アプリのプライベート ストレージにある) ファイルを読み書きしようとすると、PERMISSION_DENIED が発生し、アプリがクラッシュします。
例 1: これは、Realm.getDefaultInstance() の呼び出し時に Realm がスローする例外です。
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 Kind: PERMISSION_DENIED。
例 2: これは、(FileOutputStream を開いているときに) ファイルを永続化しようとしたときにアプリがスローする例外です。
java.io.FileNotFoundException: /data/user/0/[PACKAGE_NAME]/files/[FILE_NAME] (アクセスが拒否されました)
既に述べたように、API 24 ではこれらの問題はありません。この問題の考えられる原因を誰か知っていますか?