小编jer*_*ong的帖子

将jabber-net与Unity3d集成的内部编译器错误

这里导入jabber-net dll后进入我的项目并运行

using UnityEngine;
using System.Collections;
using jabber;
using jabber.client;
using jabber.connection;

public class XMPP : MonoBehaviour {

    jabber.client.JabberClient jC;

        // Use this for initialization
        void Start () {
        jC = new JabberClient();
    }
}
Run Code Online (Sandbox Code Playgroud)

Unity抱怨:

内部编译器错误.有关更多信息,请参阅控制台日志.输出为:未处理的异常:System.TypeLoadException:无法从程序集'jabber-net,Version = 2.1.0.710,Culture = neutral,PublicKeyToken = 924c5b18328d6f09'加载类型'jabber.connection.XmppStream'.

我已经读过其他人(非常少数人)已经设法将jabber-net与他们的Unity代码集成在一起.有人可以说明如何做到这一点或者指向另一个图书馆吗?我非常希望能够在我的项目中使用XMPP.

谢谢

编辑

感谢@Calvin提供有用的回复并帮助我深入解决问题.

解决的步骤:

  1. 在剥离System.Drawing和System.Windows.Form之后编译monodevelop中的dll(将构建目标更改为库而不是可执行文件)
  2. 在Plugins文件夹中导入dll(不是随机文件夹)
  3. 将Unity构建目标更改为Net 2.0(不是Net 2.0子集)并指示它删除字节码
  4. 删除SystemAssemblies文件夹以强制重新编译

尸检

并且......这种方法似乎最终失败了.编译为ios似乎打破了ExecutionEngineException的依赖链:尝试JIT编译方法'(包装器托管到本机)System.Threading.Interlocked:CompareExchange(jabber.protocol.ProtocolHandler&,jabber.protocol.ProtocolHandler,jabber.protocol. ProtocolHandler)'在使用--aot-only运行时.

c# xmpp unity-game-engine

5
推荐指数
1
解决办法
1492
查看次数

标签 统计

c# ×1

unity-game-engine ×1

xmpp ×1