关于Unity / Android的Jabber.net错误(在/system/lib/libc.so中找不到JNI_OnLoad,跳过init)

时间:2012-08-28 09:23:53

标签: c# android xmpp unity3d dalvik

我正在尝试使用Unity3D(Mono / C#)为iOS和Android创建一个Jabber(Jabber.net)聊天客户端。我让客户端在iOS中工作(在Unity模拟器中运行良好)。但是,在Nexus 7或HTC Desire上运行时,它不起作用。它不会崩溃,但也不会连接。它只会产生以下错误:

  

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在加载本机库时调用JNI_OnLoad(例如,通过System.loadLibrary).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?

1 个答案:

答案 0 :(得分:2)

根本不可能。不要在家里试试这个孩子。