将 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();
}
}
Unity 抱怨:
内部编译器错误。有关更多信息,请参阅控制台日志。输出为:未处理的异常:System.TypeLoadException:无法从程序集“jabber-net,版本=2.1.0.710,文化=中性,PublicKeyToken=924c5b18328d6f09”加载类型“jabber.connection.XmppStream”。
我读过其他人(极少数人)已经设法将 jabber-net 与他们的 Unity 代码集成。任何人都可以阐明如何做到这一点或将我指向一个替代图书馆吗?我非常希望能够在我的项目中使用 XMPP。
谢谢
编辑
感谢@Calvin 提供有用的回复并帮助我深入研究问题。
解决步骤:
- 剥离 System.Drawing 和 System.Windows.Form 后在 monodevelop 中编译 dll(将构建目标更改为库而不是可执行文件)
- 导入 Plugins 文件夹中的 dll(不是随机文件夹)
- 将 Unity 构建目标更改为 Net 2.0(不是 Net 2.0 子集)并指示它剥离字节码
- 删除 SystemAssemblies 文件夹以强制重新编译
验尸
而且......这种方法似乎最终失败了。编译到 ios 似乎用 ExecutionEngineException: Attempting to JIT compile method '(wrapper managed-to-native) System.Threading.Interlocked:CompareExchange (jabber.protocol.ProtocolHandler&,jabber.protocol.ProtocolHandler,jabber.protocol. ProtocolHandler)' 使用 --aot-only 运行时。