iOSおよびAndroid用のUnity3D(Mono / C#)を使用してJabber(Jabber.net)チャットクライアントを作成しようとしています。クライアントをiOSで動作させました(Unityシミュレーターでも正常に動作します)。ただし、Nexus7またはHTCDesireで実行すると、機能しません。クラッシュしませんが、接続もしません。次のエラーが発生するだけです。
D / dalvikvm(9368):/system/lib/libc.so 0x413b7270にJNI_OnLoadが見つかりません、initをスキップします
このエラーは、Jabber.netクライアントのConnectメソッドに関連しています。
jc = new JabberClient();
...
// Setting up the jabberclient and attaching eventhandlers
...
jc.Connect();
それを解決する方法はありますか?
編集: JNI_OnLoadを調べて、次の説明を見つけました:
「VMは、ネイティブライブラリがロードされるときに(たとえば、System.loadLibraryを介して)JNI_OnLoadを呼び出します。JNI_OnLoadは、ネイティブライブラリに必要なJNIバージョンを返す必要があります。新しいJNI関数を使用するには、ネイティブライブラリがエクスポートする必要があります。 JNI_VERSION_1_2を返すJNI_OnLoad関数。ネイティブライブラリがJNI_OnLoad関数をエクスポートしない場合、VMはライブラリに必要なのはJNIバージョンJNI_VERSION_1_1のみであると想定します。VMがJNI_OnLoadによって返されるバージョン番号を認識しない場合、ネイティブライブラリをロードできません。」
http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/invocation.html#wp9502から
JNI_VERSION_1_2を返すJNI_OnLoadメソッドを使用してJabber.netを再構築することは可能でしょうか?