菜鸟教程小白 发表于 2022-12-13 01:10:30

c# - iOS 上的 Ionic.Zip.Unity.dll ZlibException


                                            <p><p>我正在使用 Unity 开发适用于 Android 和 iOS 的手机游戏。
在我的游戏中,我需要下载一个压缩文件并解压。</p>

<p>为了管理压缩和解压缩,我使用了 Ionic.Zip.Unity(您可以在 <a href="https://github.com/r2d2rigo/dotnetzip-for-unity" rel="noreferrer noopener nofollow">https://github.com/r2d2rigo/dotnetzip-for-unity</a> 找到该库)。
Ionic.Zip 是 DotNetZip 库的精简版,应该适用于 Android 和 iOS。</p>

<p>所以,我的代码是:</p>

<pre><code>string fileStr = &#34;*************&#34;;
byte[] fileData = Convert.FromBase64String(fileStr);

MemoryStream fileStream = new MemoryStream(fileData);

ZipFile zipFile = ZipFile.Read(fileStream);
foreach (ZipEntry zipEntry in zipFile)
{
   MemoryStream memoryStream = new MemoryStream();

   zipEntry.Extract(memoryStream);

   memoryStream.position = 0;
   StreamReader streamReader = new StreamReader(memoryStream);
   string str = streamReader.ReadToEnd();

   Debug.Log(&#34;String decoded: &#34; + str);
}
</code></pre>

<p>*fileStr 包含加密字符串。</p>

<p>此代码适用于所有平台(Android、PC、iOS)的编辑器。
如果我为 Android 构建 apk,它可以工作。
问题出在 iOS 版本上。代码编译但运行时我有这个异常:</p>

<p>ZlibException
膨胀:rc=323508496 msg=</p>

<p>我尝试删除 .dll 并将源代码添加到项目中,它可以工作。怎么可能?</p>

<p>我真的需要帮助,因为我完成了我的想法。</p>

<p>谢谢大家。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我在使用 <code>BestHTTP</code> 时遇到了同样的问题(它在后台也使用了 <code>Zlib</code>)。我花了将近两天的时间才发现它肯定与特定的 <code>Unity</code> 和 <code>Xcode</code> 版本有关,不能正常工作。</p>

<p><strong>问题出现在 <code>Unity 5.5.0f3</code> 和 <code>Unity 5.6.0f1</code> 上,使用 <code>Xcode 8.3</code> 但没有出现使用 <code>Xcode 8.2.1</code>。</strong></p>

<p>我会做进一步调查并检查它是否适用于较新的 Unity 版本。并随时为您提供最新信息。</p>

<hr/>

<h3>更新:</h3>

<p>似乎是 Unity 中的一个错误,应该在不久的将来解决。</p>

<blockquote>
<p>Fix in review</p>
</blockquote>

<p> <a href="https://issuetracker.unity3d.com/issues/il2cpp-xcode-ios-xcode-3-throw-error-when-played-xcode-8-dot-2-1-does-not" rel="noreferrer noopener nofollow">https://issuetracker.unity3d.com/issues/il2cpp-xcode-ios-xcode-3-throw-error-when-played-xcode-8-dot-2-1-does-not</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于c# - iOS 上的 Ionic.Zip.Unity.dll ZlibException,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/43590667/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/43590667/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: c# - iOS 上的 Ionic.Zip.Unity.dll ZlibException