相关疑难解决方法(0)

如何在JNI项目中修复UnsatisfiedLinkError(无法找到依赖库)

我正在开发一个使用JNI的Java项目.JNI调用我自己编写的自定义库,比如mylib.dll,这取决于第三方库libsndfile-1.dll.

当我运行我的程序时,它崩溃了

java.lang.UnsatisfiedLinkError:  C:\...path...\mylib.dll: Can't find dependent libraries.
Run Code Online (Sandbox Code Playgroud)

我搜索了这个网站(和其他人),我尝试了一些修复:

  1. 我跑了依赖沃克.DW给出了一些警告 - libsndfile,MPR.DLL和SHLWAPI.DLL所需的两个库具有"未解析的导入" - 但DW FAQ表示可以安全地忽略这些警告.

  2. 我修复了mylib.dll中的方法名称,如此处所示.方法名称在某种程度上被编译器破坏了,但我添加了链接器标志,现在dll方法名称与我的jni头文件中的名称完全匹配.

  3. 我将所有这些DLL放在同一目录中 - 与调用它们的.jar相同的目录 - 以确保它们位于正确的PATH上.

没有骰子.

有谁知道发生了什么事?

我正在使用MacBook pro(通过Parallels)在Visual Studio 2010中进行开发.我正在使用toshiba笔记本电脑在Windows XP上进行测试.

java java-native-interface windows-xp libsndfile

79
推荐指数
7
解决办法
30万
查看次数