Java JNI error java.lang.UnsatisfiedLinkError: xxxx()V
Java JNI error java.lang.UnsatisfiedLinkError: xxxx()V
我今天在 JNI
上遇到了困难,基本上我想做的是将 OpenAlpr
集成到我的 Java
项目中,我使用的是预编译的二进制文件,当我 运行 java_test.bat
文件。一开始 Java 一直告诉我找不到 openAlprJni
然后我将 dlls
的路径添加到我的构建路径和系统路径,之后我开始遇到 openAlprJni.Alpr.initialize(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
根据文档,这意味着库本身不正常,但由于测试程序是 运行ning,所以没问题,我查看了各种论坛,甚至与 OpenAlpr
的作者交谈,但仍然不能解决这个问题,这里有没有遇到过类似问题的人帮我解决这个问题?提前致谢。
请看com.openalpr.jni.Alpr。在第 12 行中,您会发现:
private native void initialize(String country, String configFile, String runtimeDir);
此方法匹配 header com_openalpr_jni_Alpr.h:
/*
* Class: com_openalpr_jni_Alpr
* Method: initialize
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_com_openalpr_jni_Alpr_initialize(JNIEnv *, jobject, jstring, jstring, jstring);
你会看到你的 "experiencing" 只是这个 initialize
方法的方法签名,它 returns void
并接受三个 [=14] 类型的参数=].
您可能在将示例添加到工作区时破坏了这些示例(检查包名称)。请注意,您使用的 *.dll 可能是针对 com_openalpr_jni_Alpr
而不是 jni_Alpr
.
编译的
我强烈建议你学习 JNI 概念,here你找到了一个很好的起点。
我今天在 JNI
上遇到了困难,基本上我想做的是将 OpenAlpr
集成到我的 Java
项目中,我使用的是预编译的二进制文件,当我 运行 java_test.bat
文件。一开始 Java 一直告诉我找不到 openAlprJni
然后我将 dlls
的路径添加到我的构建路径和系统路径,之后我开始遇到 openAlprJni.Alpr.initialize(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
根据文档,这意味着库本身不正常,但由于测试程序是 运行ning,所以没问题,我查看了各种论坛,甚至与 OpenAlpr
的作者交谈,但仍然不能解决这个问题,这里有没有遇到过类似问题的人帮我解决这个问题?提前致谢。
请看com.openalpr.jni.Alpr。在第 12 行中,您会发现:
private native void initialize(String country, String configFile, String runtimeDir);
此方法匹配 header com_openalpr_jni_Alpr.h:
/*
* Class: com_openalpr_jni_Alpr
* Method: initialize
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_com_openalpr_jni_Alpr_initialize(JNIEnv *, jobject, jstring, jstring, jstring);
你会看到你的 "experiencing" 只是这个 initialize
方法的方法签名,它 returns void
并接受三个 [=14] 类型的参数=].
您可能在将示例添加到工作区时破坏了这些示例(检查包名称)。请注意,您使用的 *.dll 可能是针对 com_openalpr_jni_Alpr
而不是 jni_Alpr
.
我强烈建议你学习 JNI 概念,here你找到了一个很好的起点。