我尝试为CDRip库编写一个包装器。但我在JNI中是一个非常新的人。我有一个问题需要一个本机方法来工作:
public class CDRipJNI {
static {
System.loadLibrary("CDRip");
}
// Get the DLL version number
static native int CR_GetCDRipVersion();
}
在另一个课程中,我称这种方法为:
int version = CDRipJNI.CR_GetCDRipVersion();
dll已成功加载但方法调用失败:
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.test.CDRipJNI.CR_GetCDRipVersion()J
at com.test.CDRipJNI.CR_GetCDRipVersion(Native Method)
at Test.main(Test.java:5)
答案 0 :(得分:0)
如果它没有一个带有该签名的方法,它没有,那么你的Java类是错误的,或者它根本就不是JNI DLL。
如果 是一个JNI DLL,我根本不知道你为什么要为它编写任何类型的包装器:它们应该提供它。
所以它不是。如果它不是一个JNI DLL,你将不得不编写自己的JNI DLL来调用它,并且按照通常的JNI来匹配你的Java类等。