2016-12-03 68 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