2016-12-03 64 views
0

在API 25之前,將文件保存到私有應用存儲是沒問題的。然而,compileSdkVersion和targetSdkVersion設置爲25時,這是不可能的 - 每當我嘗試讀取/寫入文件(位於應用程序專用存儲器中)時,我都會收到PERMISSION_DENIED,並且我的應用程序崩潰。Android API 25:保存到私有存儲時發生權限錯誤

實施例1:這是例外境界拋出在調用Realm.getDefaultInstance():

io.realm.exceptions.RealmFileException:無法在路徑打開境界 「/數據/數據/ [ PACKAGE_NAME] /files/default.realm.management」。 請使用您的應用具有讀寫權限的路徑。 /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp line 81種類:PERMISSION_DENIED。

實施例2:這是該應用拋出時試圖堅持一個文件(在打開FileOutputStream中)除外:

java.io.FileNotFoundException:/數據/用戶/ 0/[PACKAGE_NAME] /文件/ [文件名](拒絕)

前面已經說過,我沒有這些問題上的API 24.是否有人有一個想法是什麼這個問題的可能原因是什麼?

+0

這一般不是問題。嘗試完全卸載應用程序(即從設置)並重新安裝。 – CommonsWare

+0

井dangit,真的幫助......所以爲什麼它發生呢? – Aenadon

回答

1

你的應用失去了處理自己文件的能力。可能的原因包括:

  • 因爲你改變了你的應用程序—的android:sharedUserId值,如果你曾經添加/修改/刪除清單中的這個屬性,你必須完全卸載並重新安裝應用程序

  • 東西做與您正在測試的設備,也許紮成多個用戶帳戶...

  • ... Android中的一些錯誤,不小心絆倒

+0

不知道是哪一個,但重新安裝肯定有幫助,再次感謝! – Aenadon