PCLStorage / ZipArchive调试和发布之间的区别

时间:2015-11-02 08:39:24

标签: zip xamarin.forms

大家好,这个名叫stackoverflow的好城市的大家好。 我带着一个我似乎无法解决的问题来找你。

我的问题是我在vs2015中使用xamarin表单开发应用程序。 在这个应用程序中,我从网络服务下载一些压缩数据(图像/音频)并将其保存到我的手机与nuget PCLStorage和(需要时)解压缩文件显示/播放。

使用" Debug"该应用程序正常工作模式,但当我将应用程序打包为apk并将其安装在我的手机上时,我抛出"对象引用未设置为对象的实例"当我尝试用ziparchive打开zip文件时 CheckExistsaAsync告诉我文件存在,并且await DisplayAlert告诉我流的长度与保存文件时的长度相同。它在调试模式下运行时的长度也与文件相同。

这是我失败的代码:

 IFolder rootFolder = FileSystem.Current.LocalStorage;
  if(await rootFolder.CheckExistsAsync("SavedData.zip") == ExistenceCheckResult.FileExists)
  {
    IFile file = await rootFolder.GetFileAsync("SavedData.zip");
    using(Stream s = await file.OpenAsync(FileAccess.Read))
    {
      await DisplayAlert("blabla", s.Length.ToString(), "ok");
      using(ZipArchive zip = new ZipArchive(s, ZipArchiveMode.Read, false))
      {
        //Code
      }
    }
  }

在我身上行的是使用(ZipArchive zip = .....)行抛出异常

2 个答案:

答案 0 :(得分:0)

这很难说,但我将推测文件许可问题。它在哪里下载文件,Android App是否具有访问该文件位置的适当权限。

答案 1 :(得分:0)