0

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 ではこれらの問題はありません。この問題の考えられる原因を誰か知っていますか?

4

1 に答える 1

1

アプリは、独自のファイルを操作できなくなりました。考えられる理由は次のとおりです。

  • アプリの値を変更したためandroid:sharedUserId— マニフェストでこの属性を追加/変更/削除した場合は、アプリを完全にアンインストールして再インストールする必要があります

  • おそらくテストしているデバイス上の複数のユーザーアカウントに関係するもの...

  • ...誤ってつまずいた Android のバグ

于 2016-12-03T18:47:20.407 に答える