c# - 统一压缩字符串时出现 libMonoPosixHelper.dylib 问题
问题描述
我正在再次处理一个旧项目,该项目用于构建 Unity 2018.3 并能正常工作
我已经安装了 Unity 2019.3.0f3。
我可以毫无问题地构建(除非我在某处的日志中遗漏了什么?)。
我有以下功能:
public static string CompressString(string text)
{
try
{
if (text == null || text.Length == 0) return String.Empty;
using (var memoryStream = new MemoryStream())
{
byte[] buffer = Encoding.UTF8.GetBytes(text);
using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Compress, true))
{
gZipStream.Write(buffer, 0, buffer.Length);
}
memoryStream.Position = 0;
var compressedData = new byte[memoryStream.Length];
memoryStream.Read(compressedData, 0, compressedData.Length);
var gZipBuffer = new byte[compressedData.Length + 4];
Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length);
Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gZipBuffer, 0, 4);
return Convert.ToBase64String(gZipBuffer);
}
}
catch (Exception erreur)
{
return text;
}
}
在 Windows 上运行良好。
当我在我的 Mac 上尝试时,出现以下异常:
CompressString : libMonoPosixHelper.dylib : : : at (wrapper managed-to-native) System.IO.Compression.DeflateStreamNative.CreateZStream(System.IO.Compression.CompressionMode,bool,System.IO.Compression.DeflateStreamNative/UnmanagedReadOrWrite,intptr) at System.IO.Compression.DeflateStreamNative.Create (System.IO.Stream compressedStream, System.IO.Compression.CompressionMode mode, System.Boolean gzip) [0x0004a] in :0 at System.IO.Compression.DeflateStream..ctor (System .IO.StreamcompressionStream, System.IO.Compression.CompressionMode 模式, System.Boolean leaveOpen, System.Boolean gzip) [0x0002d] in :0 at System.IO.Compression.DeflateStream..ctor (System.IO.Stream 流, System.IO.Compression.CompressionMode 模式,System.Boolean leaveOpen,System.Int32 windowsBits) [0x00000] 在:0 at (wrapper remoting-invoke-with-check) System.IO.Compression.DeflateStream..ctor(System.IO.Stream,System.IO.Compression.CompressionMode,bool,int) 在 System.IO.Compression.GZipStream。 .ctor(System.IO.Stream 流,System.IO.Compression.CompressionMode 模式,System.Boolean leaveOpen)[0x00006] in :0 at(wrapper remoting-invoke-with-check)System.IO.Compression.GZipStream.. <3ae6905998594b6a999ad880754f3bfd>:0 UnityEngine.DebugLogHandler:Internal_Log(LogType,LogOption , String, Object) UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[]) UnityEngine.Logger:Log(LogType, Object) UnityEngine.Debug:LogError(Object) LibTRANSVERSE.Helper。监控:异常(异常,字符串)LibTRANSVERSE.Helper.String_Utils:CompressString(字符串)... System.Threading.ThreadHelper:ThreadStart_Context(Object)System.Threading.ExecutionContext:RunInternal(ExecutionContext,ContextCallback,对象,布尔)System.Threading .ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean) System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object) System.Threading.ThreadHelper:ThreadStart(Object) (文件名:./Runtime/Export/Debug/Debug. bindings.h 行:35)Run(ExecutionContext, ContextCallback, Object, Boolean) System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object) System.Threading.ThreadHelper:ThreadStart(Object) (文件名: ./Runtime/Export/Debug/Debug.bindings.h线路:35)Run(ExecutionContext, ContextCallback, Object, Boolean) System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object) System.Threading.ThreadHelper:ThreadStart(Object) (文件名: ./Runtime/Export/Debug/Debug.bindings.h线路:35)
我错过了什么吗?是 Unity 的问题还是我使用了 mac 上不可用的功能?
解决方案
推荐阅读
- excel - VBA 中来自 Office 365 帐户的 CDO.Message 电子邮件
- cryptography - 区块链数据是永久存储的吗?
- php - PHP 未捕获错误:在 null 上调用成员函数 escape_value()
- javascript - 在 nodejs 中观察会话创建-销毁事件
- excel - 将变量设置为超链接中包含的范围
- python - 为什么我不能在 Python lambda 中使用元组打包?
- java - java.lang.ClassNotFoundException:io.confluent.kafka.serializers.AbstractKafkaSchemaSerDe
- pandas - 条件合并 Pandas
- mule - Dataweave 2 如何将对象映射到对象的 JSON 数组
- javascript - 在 json 中获取对象的问题。Javascript