android上的UnauthorizedAccessException

时间:2016-12-28 21:28:05

标签: android unity3d file-access

我在尝试检索某些文件时在Android上有UnauthorizedAccessException。奇怪的是,它在今晚之前工作了几个月。

我在过去几个小时里所做的唯一事情就是(即使我无法看到它有什么变化):

  • 上传apk以启用对Google Play服务进行Alpha测试
  • 添加密钥库并签署应用程序(尝试没有签名,同样的问题)
  • 在我的测试设备上删除我的应用的最后一个实例(与签名版本不兼容)

该应用程序是使用Unity 5.5.0f3构建的,我使用Application.persistentDataPath来构建我尝试访问的路径。

这是异常的callstack:

UnauthorizedAccessException: Access to the path "/storage/emulated/0/Android/data/com.<mycompany>.<myproductname>/files/Saves" is denied.
at System.IO.Directory.GetFileSystemEntries (System.String path, System.String searchPattern, FileAttributes mask, FileAttributes attrs) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFiles (System.String path, System.String searchPattern) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFiles (System.String path, System.String searchPattern, SearchOption searchOption) [0x00000] in <filename unknown>:0
at ProfileManager.ParseDirForProfiles (.DirName _dir, .FileExtension _ext) [0x00000] in <filename unknown>:0
at SaveManager.ParseDirForProfiles () [0x00000] in <filename unknown>:0
at myproductname.OnStart () [0x00000] in <filename unknown>:0
at StateMachine.Start () [0x00000] in <filename unknown>:0

CallStack

导致问题的代码: Code

以及相关设置: Settings 1 Settings 2

1 个答案:

答案 0 :(得分:2)

该目录可能仍归以前不兼容的应用版本所有。删除目录,让您的应用在下次运行时重新创建。

如果您的应用正常更新,则不会出现此类问题。