JNI调用dll方法不起作用 - UnsatisfiedLinkError

时间:2016-08-01 13:59:47

标签: java java-native-interface

我使用头文件中的swig创建了Java代理。

现在我得到一个UnsatisfiedLinkError(我认为)指向一个不存在的方法。

LcDll:DLL_PROCESS_ATTACH
Exception in thread "main" java.lang.UnsatisfiedLinkError: barJNI._LC_application_get()J
    at barJNI._LC_application_get(Native Method)
    at bar.LC_application_get(bar.java:31)
    at LumicamTest.main(LumicamTest.java:171)
LcDll:DLL_THREAD_DETACH
LcDll:DLL_THREAD_DETACH
LcDll:DLL_THREAD_DETACH
LcDll:DLL_THREAD_DETACH
LcDll:DLL_THREAD_DETACH
LcDll:DLL_THREAD_DETACH
LcDll:DLL_PROCESS_DETACH

LcDll消息告诉我,DLL可能已加载。

我想调用以下方法:

public final static native long _LC_application_get();

该方法由swig生成,LC_application_get();没有下划线。

我尝试过两种变体,有或没有下划线,导致DLL资源管理器显示带下划线的方法。 dll explorer将方法显示如下:_LC_application_get@0

我认为@0表示该方法在其签名中没有参数。

有人有想法,可能是什么问题?

提前致谢

0 个答案:

没有答案