小标
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
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号