5

ここから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に感謝します。

解決へのステップ:

  1. System.DrawingとSystem.Windows.Formを削除した後、monodevelopでdllをコンパイルします(ビルドターゲットを実行可能ファイルではなくライブラリに変更します)
  2. プラグインフォルダー(ランダムフォルダーではない)にdllをインポートします
  3. UnityビルドターゲットをNet2.0(Net 2.0サブセットではない)に変更し、バイトコードを削除するように指示します
  4. SystemAssembliesフォルダーを削除して、強制的に再コンパイルします

事後分析

そして...このアプローチは最終的に失敗するようです。iOSにコンパイルすると、ExecutionEngineExceptionで依存関係チェーンが壊れているようです:JITコンパイルメソッドを試行しています'(ラッパー管理からネイティブ)System.Threading.Interlocked:CompareExchange(jabber.protocol.ProtocolHandler&、jabber.protocol.ProtocolHandler、jabber.protocol。 ProtocolHandler)'--aot-onlyで実行中。

4

1 に答える 1