[Отредактировано] Сначала я должен извиниться, я только что заметил фрагмент кода, который я вставил, поскольку наш код для чтения файлов PNG не также работает в бэкэнде .net (txtчтение работает как для .net, так и для il2cpp, как указано).Стек вызовов пришел из другого исключения.Исправлено
Мы работаем в приложении XR для Microsoft Hololens, которое включает чтение как текстовых, так и двоичных файлов (последний как байтовые массивы для загрузки в качестве текстур Unity с помощью Texture2D.LoadImage).Поскольку мы должны предоставить пользователю простой способ изменения / модификации файлов, оба находятся в папке 3D Objects в hololens.
Все работало должным образом, пока нам недавно не пришлось сменить наш серверный сценарий.net to il2cpp;с тех пор мы находим ошибки всякий раз, когда пытаемся прочитать наши png-файлы, хотя txt все еще можно прочитать без изменений в нашем исходном коде .net.
Мы читаем наши текстовые файлы, как это (работает правильно):
Windows.Storage.StorageFolder objectsFolder = Windows.Storage.KnownFolders.Objects3D;
Windows.Storage.StorageFile csvFile = await objectsFolder.GetFileAsync(oneFile);
string contentText = await Windows.Storage.FileIO.ReadTextAsync(csvFile);
Для PNG мы пробовали несколько разных подходов, образуя самый простой File.ReadAllBytes( pngFile.Path);
(он работает для .net, но не для il2cpp), FileStream и другие методы, но они всегда терпят неудачу в какой-то момент.Последнее:
Windows.Storage.StorageFolder pngObjectsFolder = Windows.Storage.KnownFolders.Objects3D;
Windows.Storage.StorageFile pngFile = await pngObjectsFolder.GetFileAsync(i.ToString() + ".png");
Windows.Storage.Streams.IBuffer buffer = await Windows.Storage.FileIO.ReadBufferAsync(pngFile);
Windows.Storage.Streams.DataReader dataReader = Windows.Storage.Streams.DataReader.FromBuffer(buffer);
dataReader.ReadBytes (fileData);
..., которое выдает это исключение:
Возникло исключение: 'System.NullReferenceException' в Assembly-CSharp.dll
и иметь только это в стеке вызовов:
в CsvReader.d__4.MoveNext ()
Так что нам кажется, что наш dataReader остается нулевымно мы не очень понимаем, что происходит, и как это предотвратить.Кто-нибудь может дать какой-нибудь совет или идеи для чтения такого файла?
regards!