1

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を再構築することは可能でしょうか?

4

1 に答える 1

2

それは単に不可能です。家庭の子供たちでこれを試してはいけません。

于 2012-09-06T11:46:59.237 に答える