【发布时间】:2012-08-15 21:51:55
【问题描述】:
我正在尝试在 Unity/Monotouch/C# 中为 iOS 的 facebook 创建一个聊天客户端。我收到以下错误
ExecutionEngineException: Attempting to JIT compile method '(wrapper managed-to-native)
System.Threading.Interlocked:CompareExchange
(System.EventHandler`1<Matrix.EventArgs>&,System.EventHandler`1<Matrix.EventArgs>,
System.Eve ntHandler`1<Matrix.EventArgs>)' while running with --aot-only.
at Matrix.Net.BaseSocket.add_OnConnect (System.EventHandler`1 value) [0x00000]
in <filename unknown>:0
at Matrix.XmppStream..ctor (StreamType type) [0x00000] in <filename unknown>:0
at Matrix.Xmpp.Client.XmppClient..ctor () [0x00000] in <filename unknown>:0
at TestFacebook.setup () [0x00000] in <filename unknown>:0
at TestFacebook.Start () [0x00000] in <filename unknown>:0
(Filename: Line: -1)
当我尝试连接 XMPP 框架中的一个代表时。这是可能导致它的代码:
xmppClient.OnBeforeSasl += this.xmppClient_OnBeforeSasl;
委托方法:
public void xmppClient_OnBeforeSasl(object sender, Matrix.Xmpp.Sasl.SaslEventArgs e)
{ ... }
还尝试将 API 可比性级别更改为顶级 .NET 2.0,但没有任何结果。将 xmppClient_OnBeforeSasl 方法设置为静态也无济于事。它在 Unity 中运行良好,但在 iOS 设备上运行时崩溃。
【问题讨论】:
-
找到了解决方法:forum.unity3d.com/threads/… 但在将其转化为我的情况时遇到了麻烦
-
但是不确定是否可以在不更改我无法做到的库代码的情况下应用解决方法。