我有一个带有本机函数的小型JNI文件,该函数将char数组转换为字节数组(因此我可以将其发送到我的C ++客户端)。
定义如下:
JNIEXPORT jbyteArray JNICALL Java_com_example_comtesttcp_communicationmoduleTCPIP_ConvertString( JNIEnv * env, jobject, jcharArray Buffer)
软件包名称(加载库的位置是:
package com.example.communicationmoduleTCPIP
并且该类中的本机deffiniton如下:
// Load helper functions library static { System.loadLibrary("HelperFunctions"); } public native byte[] ConvertString(char[] Buffer);
但是当调用ConvertString函数时,我得到以下错误:
01-13 21:07:21.890: W/dalvikvm(22611): No implementation found for native Lcom/example/communicationmoduleTCPIP/communicationmoduleTCPIP;.ConvertString:([C)[B 01-13 21:07:21.890: W/dalvikvm(22611): threadid=11: thread exiting with uncaught exception (group=0x412b52a0) 01-13 21:07:21.900: E/AndroidRuntime(22611): FATAL EXCEPTION: Thread-821 01-13 21:07:21.900: E/AndroidRuntime(22611): java.lang.UnsatisfiedLinkError: Native method not found: com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.ConvertString:([C)[B 01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.ConvertString(Native Method) 01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.SendBuffer(communicationmoduleTCPIP.java:164) 01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.RunServer(communicationmoduleTCPIP.java:107) 01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.run(communicationmoduleTCPIP.java:368) 01-13 21:07:21.900: E/AndroidRuntime(22611): at java.lang.Thread.run(Thread.java:856)
问题可能是该类(communicationmoduleTCPIP)是可运行的类吗?我不在类中运行,并且具有以下定义(当我注释本机函数时,服务器运行正常)
public class communicationmoduleTCPIP extends communicationmodule implements Runnable
我在网上环顾四周,阅读了一些我认为定义正确的文章后,有人可以告诉我我做错了什么吗?欢迎任何建议。
本机方法名称应与类全名匹配: Java_com_example_communicationmoduleTCPIP_communicationmoduleTCPIP_ConvertString
Java_com_example_communicationmoduleTCPIP_communicationmoduleTCPIP_ConvertString