JNI 使用时出错
Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.initCamera(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)J
我的dll已经成功load了,但是调用函数的时候报上面这个错,没找到这个方法。查了网上都说是因为方法名不一致或者大小写错误啥的,我也都核对过了没有问题啊,不知道为什么不行。
Java代码:
public class Test {
public native long initCamera(String ip,String port,String username,String pwd);
public native int snapPic(long id,String savePath,int no);
static{
System.loadLibrary("dhconfigsdk");
System.loadLibrary("dhnetsdk");
System.loadLibrary("dhplay");
System.loadLibrary("CameraCatcher");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test tNative = new Test();
String ip="192.108.1.108";
String port="37777";
String username="admin";
String pwd="123456";
long cameraId=tNative.initCamera(ip,port,username,pwd);
System.out.println(cameraId);
String savePath="D:/";
int number=tNative.snapPic(cameraId,savePath,0);
}
}
C++代码
JNIEXPORT jlong JNICALL Java_CameraCatcher_initCamera
(JNIEnv * env, jclass c, jstring arg_ip, jstring arg_port, jstring arg_username, jstring arg_pwd)
{
......
return lLogin;
}
JNIEXPORT jint JNICALL Java_CameraCatcher_snapPic
(JNIEnv * env, jclass c, jlong arg_id, jstring arg_path, jint arg_no)
{
.....
return 12;
}
求解答,找不出哪里有问题。
请问问题有找到吗?