ここからjabber-netdllをプロジェクトにインポートして実行した後
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、Version = 2.1.0.710、Culture = neutral、PublicKeyToken=924c5b18328d6f09'からタイプ'jabber.connection.XmppStream'を読み込めませんでした。
他の人(非常に少数の人)が、Jabber-netをUnityコードと統合することに成功したことを読みました。誰かがこれを行う方法に光を当てたり、別のライブラリを紹介したりできますか?プロジェクトでXMPPを使用できるようにしたいと思っています。
ありがとう
編集
有益な回答を提供し、問題を掘り下げるのを手伝ってくれた@Calvinに感謝します。
解決へのステップ:
- System.DrawingとSystem.Windows.Formを削除した後、monodevelopでdllをコンパイルします(ビルドターゲットを実行可能ファイルではなくライブラリに変更します)
- プラグインフォルダー(ランダムフォルダーではない)にdllをインポートします
- UnityビルドターゲットをNet2.0(Net 2.0サブセットではない)に変更し、バイトコードを削除するように指示します
- SystemAssembliesフォルダーを削除して、強制的に再コンパイルします
事後分析
そして...このアプローチは最終的に失敗するようです。iOSにコンパイルすると、ExecutionEngineExceptionで依存関係チェーンが壊れているようです:JITコンパイルメソッドを試行しています'(ラッパー管理からネイティブ)System.Threading.Interlocked:CompareExchange(jabber.protocol.ProtocolHandler&、jabber.protocol.ProtocolHandler、jabber.protocol。 ProtocolHandler)'--aot-onlyで実行中。