首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复JNI项目中的UnsatisfiedLinkError (找不到依赖库)

如何修复JNI项目中的UnsatisfiedLinkError (找不到依赖库)
EN

Stack Overflow用户
提问于 2011-05-23 10:14:11
回答 18查看 369.3K关注 0票数 91

我正在做一个使用JNI的Java项目。JNI调用一个我自己编写的定制库,假设是mylib.dll,这依赖于第三方库libsndfile-1.dll。

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

代码语言:javascript
运行
复制
java.lang.UnsatisfiedLinkError:  C:\...path...\mylib.dll: Can't find dependent libraries.

我已经搜索了这个站点(和其他站点),并尝试了一些修复:

  1. 我运行了依赖遍历。DW给出了一些警告-- libsndfile所需的两个库,MPR.DLL和SHLWAPI.DLL,有“未解决的导入”--但是DW FAQ说可以安全地忽略这些警告。
  2. I修复了mylib.dll中的方法名称,就像建议的here一样。方法名称被编译器弄乱了,但是我添加了链接器标志,并且dll方法名称现在与我的jni头文件中的名称完全匹配。
  3. 我将所有这些dll放在相同的目录中--与调用它们的.jar相同的目录--以确保它们位于正确的路径上。

没有骰子。

有人知道这是怎么回事吗?

我在Visual Studio2010中使用MacBook pro进行开发(通过Parallels)。我在一台东芝笔记本电脑上进行Windows XP测试。

EN

Stack Overflow用户

发布于 2018-05-14 23:17:49

我在keepsafe发现了一些朋友写的一篇很棒的文章,这篇文章和我做的事情是一样的。它对我很有效,所以希望它也能帮到你!如果您感兴趣,请阅读(The Perils of Loading Native Libraries on Android)或直接使用

compile 'com.getkeepsafe.relinker:relinker:1.2.3'

并替换

代码语言:javascript
运行
复制
System.loadLibrary("myLibrary");

使用

代码语言:javascript
运行
复制
ReLinker.loadLibrary(context, "mylibrary");
票数 2
EN
查看全部 18 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6092200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档