关于java.lang.UnsatisfiedLinkError: Native method not found。。。

这是第一篇博客,这几天开发时,需要用到串口通讯,折腾几天后终于搞定,最难解决的是遇到一个问题,当初始化串口时,一直报错java.lang.UnsatisfiedLinkError: Native method not found。。。,百度了N久才找到原因,原来是在调用库文件方法时自己的包名与.so库文件方法名不一直导致,这是库文件方法


这是我的包文件


因为包名与C下的方法名不一致导致的报错

因为使用的是别打包好的.so文件,也是第一次弄这个,一直搞不懂什么原因,就一直调一直找,最后才找到方法解决,方法如下

1.修改C文件后重新打包成.so文件,将C文件下的方法名改成和包名一致,如我的这个,将C文件的方法Java_com_example_x6_serial_SerialPort_open改为Java_qaml_huaibeitapp_SerialPort_open即可。


2.修改包名(不推荐,因为项目包名开发之前定好的),将包名改成与C文件方法名前一致即可,比如如我的,将qaml.huaibeitapp改为com.example.x6.serial即可.或者重新创建一个包com.example.x6也行


注意一下几处,这里的包名的.号就相当于C文件方法名的_号。此处Java_qaml_huaibeitapp_SerialPort_open,SerialPort是你的实现方法的实体类,必须和C文件下的相同,open这是你实现的实体类里面的方法,也要和C文件下的相同。

这样修改之后就完成了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值