gpt4 book ai didi

java - 确定 UnsatisfiedLinkError 的根本原因

转载 作者:太空宇宙 更新时间:2023-11-04 13:35:23 27 4
gpt4 key购买 nike

我试图调用 dll 中的函数,但出现错误。
如何识别其来源?

protected native String parse(String base, String qualifiedType);
static {

try {
System.load("c:\\lib\\win32\\parser.dll"); //path is correct
}catch (Exception e){
e.getStackTrace();
}

}

public void parseFoo(){
String result = parse (name,baseType);
}

在调用parse时我得到:

Exception in thread "main" java.lang.UnsatisfiedLinkError: MyClass.parse(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

最佳答案

根本原因是方法签名。堆栈跟踪将显示异常是在 r native 方法调用处引发的,而不是由 load() 引发的,因此它与 DLL 路径名无关。

据猜测,您已经更改了 Java native 方法签名,而没有调整 C 代码。使用 javah 重新生成 .h 文件并调整 C 代码以与其一致。并确保您在 .c 文件中#include .h 文件。

关于java - 确定 UnsatisfiedLinkError 的根本原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31755637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com