你好,你在這個偉大的城市稱爲stackoverflow所有聰明的人。 我來找你有一個問題,我似乎無法弄清楚。PCLStorage/ZipArchive調試和發佈之間的差異
我的問題是,我正在開發一個在vs2015中使用xamarin表單的應用程序。 在這個應用程序中,我從網絡服務下載了一些壓縮數據(圖像/音頻),並使用nuget PCLStorage將它保存到我的手機中,並在需要時解壓縮文件以顯示/播放。
使用「調試」模式時,應用程序工作正常,但當我將應用程序打包爲apk並將其安裝在手機上時,我試圖打開zip文件時引發「對象引用未設置爲對象的實例」帶有壓縮文件的文件 CheckExistsaAsync告訴我文件存在,並且等待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
}
}
}
,關於我failes該生產線是拋出異常
我沒有權限,因爲它的使用FileSystem.Current.LocalStorage至極似乎並不需要任何(沒有,我在文件中已經找到了反正xamarin)此設置。我確實已經在Android清單中讀取和寫入外部存儲權限,因爲它們用於應用程序的其他部分 –
您是否還有關於異常的更多信息?你可以在你的問題中發佈堆棧跟蹤嗎?那裏可能有另一個提示。 –