调用海康sdk报java.lang.Error: Structure.getFieldOrder()

一、问题 在使用jna包调用海康的sdk时出现java.lang.Error: Structure.getFieldOrder(),刚开始以为是依赖冲突查找所有jna的包发现有3个,一个是自己导

一、问题

在使用jna包调用海康的sdk时出现java.lang.Error: Structure.getFieldOrder(),刚开始以为是依赖冲突查找所有jna的包发现有3个,一个是自己导入的jna,另外两个不是,所以以为是依赖冲突被误导了,如图:

 这两个包其实是oshi查看系统监控信息所使用的包,所以这个和报错信息没有关系。

经过测试在调用sdk的main方法中不会报错正常执行,只要外部调用就报错。改方法继承了Structure,里面的getFieldOrder相关方法都存在。

二、解决方案

然后以为是sdk版本问题,所以更换全部sdk无果。然后想到可能是jna包的版本问题,更换版本只够还是报错。后查询相关资料(百度)发现在使用高版本的jna时调用sdk中继承的Structure,都需要在方法内重写getFieldOrder()方法。如图:

 这样代码就能正常执行了,但是sdk中的类很多,cv也需要很久时间,所以我看到有个大佬做了工具类,链接:https://wwwblogs/easyidea/p/16490708.html

发布者:admin,转转请注明出处:http://www.yc00.com/web/1755047380a5232908.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信