关闭

android ndk程序UnsatisfiedLinkError解决方案

2012人阅读 评论(0) 收藏 举报

 

 

这个问题会出现两种情况。

第一种是UnsatisfiedlinkError:dll名称。说明dll没有放到合适的位置。对于Android开发,我们一般把so放在libs目录下,但是还是会出现这个错误。根本原因System.loadLibrary函数会加载你指定的so,该so中需要链接的所有符号都需要能够链接到,如果有一个链接不成功,那么整个so也会加载失败。仔细检查so中需要的所有符号,确保其存在且在正确的位置上。

第二种是UnsatisfiedlinkError:方法名称。说明dll已经成功加载,但是方法名字错了。这个错误最最常见而且基本的解决方法是:仔细对比你的native 方法的原型确保与javah生成的原型一致。在java端修改native方法名称一定要记得更新c/c++端的函数名称,这是造成此类错误最常见的原因。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1961562次
    • 积分:15337
    • 等级:
    • 排名:第715名
    • 原创:164篇
    • 转载:22篇
    • 译文:0篇
    • 评论:292条
    最新评论