关于Java语言.lang.UnsatisfiedLinkError: Native method not found问题的解决办法
小标 2018-12-04 来源 : 阅读 2273 评论 0

摘要:本文主要向大家介绍了关于Java语言.lang.UnsatisfiedLinkError: Native method not found问题的解决办法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了关于Java语言.lang.UnsatisfiedLinkError: Native method not found问题的解决办法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。


这几天开发时,需要用到串口通讯,折腾几天后终于搞定,最难解决的是遇到一个问题,当初始化串口时,一直报错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文件下的相同。


这样修改之后就完成了。


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved