繁体   English   中英

在iPhone上运行时,RestSharp在Unity3d中崩溃

[英]RestSharp is crashing with Unity3d when running on iPhone

我正在尝试将RestSharp附加到Unity3d。 原始的RestSharp mono lib在Editor中工作正常,但在设备上因调用栈而崩溃

ArgumentOutOfRangeException: Argument is out of range.
Parameter name: options
at System.Security.Cryptography.X509Certificates.X509CertificateCollection.GetEnumerator () [0x00000] in <filename unknown>:0 
at System.Text.RegularExpressions.Regex.validate_options (RegexOptions options) [0x00000] in <filename unknown>:0 
at System.Text.RegularExpressions.Regex..ctor (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
at RestSharp.RestClient..ctor () [0x00000] in <filename unknown>:0 
at RestSharp.RestClient..ctor (System.String baseUrl) [0x00000] in <filename unknown>:0 

这意味着,异常出现在ctor RestClient(string)内部,这是默认ctor的包装。 在默认的ctor内部,

public RestClient()
    {
#if WINDOWS_PHONE
        this.UseSynchronizationContext = true;
#endif
        this.ContentHandlers = new Dictionary<string, IDeserializer>();
        this.AcceptTypes = new List<string>();
        this.DefaultParameters = new List<Parameter>();

        // register default handlers
        this.AddHandler("application/json", new JsonDeserializer());
        this.AddHandler("application/xml", new XmlDeserializer());
        this.AddHandler("text/json", new JsonDeserializer());
        this.AddHandler("text/x-json", new JsonDeserializer());
        this.AddHandler("text/javascript", new JsonDeserializer());
        this.AddHandler("text/xml", new XmlDeserializer());
        this.AddHandler("*+json", new JsonDeserializer());
        this.AddHandler("*+xml", new XmlDeserializer());
        this.AddHandler("*", new XmlDeserializer());

        this.FollowRedirects = true;
    }

在这一点上,我看不到Regex ctor的下一步出现在哪里。 有任何想法吗?

在使用Unity 5.2.1构建独立的Windows项目时,我们遇到了相同的问题。 在编辑器中,一切正常,直到您创建了构建。

我相信问题与“ AddHandler”方法中使用的“ structuredSyntaxSuffixWildcardRegex”有关。 虽然我不知道为什么它会失败,但我确实知道RestSharp的先前版本确实可以为我们工作。

我猜您也在使用最新的RestSharp版本,因此您可以尝试一下RestSharp v105.1.0吗?

它似乎从Restshap v105.2.1停止运行,我正在查看这些提交,以查看可能的罪魁祸首。 如果找到解决方案,我将进行修复。

另外,我必须通知您,由于缺少Mono.Posix库,在我们的情况下,GZIP解压缩也无法正常工作。 当服务器返回压缩的响应并且RestClient允许它时,就会发生此问题。 我们必须使用Fabman08的修复程序来解决此问题,该修复程序使解压缩可配置

我分叉了RestSharp存储库,以尝试解决上述问题以及其他与Unity相关的问题。 它位于: https : //github.com/eamonwoortman/RestSharp.Unity

您的问题和其他问题已得到修复,并已针对64位独立Windows版本进行了测试。

您能否验证这些修复程序是否也可以在您的iOS项目上使用? 确保您构建RestSharp.Net35.Unity项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM