栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Exception in thread “main“ java.lang.Error: Structure.getFieldOrder() on class com.gc.checkingHangin

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Exception in thread “main“ java.lang.Error: Structure.getFieldOrder() on class com.gc.checkingHangin

Exception in thread "main" java.lang.Error: Structure.getFieldOrder() on class com.gc.checkingHangingRail.utils.haikang.HCNetSDK$NET_DVR_WORKSTATE_V30 does not provide enough names [0] ([]) to match declared fields [8] ([byAlarmInStatic, byAlarmOutStatic, byAudioChanStatus, byRes, dwDeviceStatic, dwLocalDisplay, struChanStatic, struHardDiskStatic])
	at com.sun.jna.Structure.getFields(Structure.java:1077)
	at com.sun.jna.Structure.deriveLayout(Structure.java:1234)
	at com.sun.jna.Structure.calculateSize(Structure.java:1159)
	at com.sun.jna.Structure.allocateMemory(Structure.java:401)
	at com.sun.jna.Structure.ensureAllocated(Structure.java:377)
	at com.sun.jna.Structure.ensureAllocated(Structure.java:367)
	at com.sun.jna.Structure.write(Structure.java:764)
	at com.sun.jna.Structure.autoWrite(Structure.java:2166)
	at com.sun.jna.Function.convertArgument(Function.java:532)
	at com.sun.jna.Function.invoke(Function.java:345)
	at com.sun.jna.Library$Handler.invoke(Library.java:265)
	at com.sun.proxy.$Proxy0.NET_DVR_GetDVRWorkState_V30(Unknown Source)
	at com.gc.checkingHangingRail.utils.HaiKangSDKSaveRealData.getDVRConfig(HaiKangSDKSaveRealData.java:54)
	at com.gc.checkingHangingRail.utils.HaiKangSDKSaveRealData.main(HaiKangSDKSaveRealData.java:15)

Exception in thread "main" java.lang.Error: Structure.getFieldOrder() on class com.gc.checkingHangingRail.utils.haikang.HCNetSDK$NET_DVR_WORKSTATE_V30 does not provide enough names [0] ([]) to match declared fields [8] ([byAlarmInStatic, byAlarmOutStatic, byAudioChanStatus, byRes, dwDeviceStatic, dwLocalDisplay, struChanStatic, struHardDiskStatic])

出现这个错误!!

解决方法:找到对应位置

分析错误原因:

Structure.getFieldOrder()匹配的有8个而实际只有0个。

所以再开头添加添加

@Structure.FieldOrder(value= {"dwDeviceStatic","struHardDiskStatic","struChanStatic"
		,"byAlarmInStatic","byAlarmOutStatic","dwLocalDisplay"
		,"byAudioChanStatus","byRes"})

修改完如下:

@Structure.FieldOrder(value= {"dwDeviceStatic","struHardDiskStatic","struChanStatic"
		,"byAlarmInStatic","byAlarmOutStatic","dwLocalDisplay"
		,"byAudioChanStatus","byRes"})
public static class NET_DVR_WORKSTATE_V30 extends Structure {//DVR工作状态(9000扩展)
	public int dwDeviceStatic; 	//设备的状态,0-正常,1-CPU占用率太高,超过85%,2-硬件错误,例如串口死掉
	public NET_DVR_DISKSTATE[]  struHardDiskStatic = (NET_DVR_DISKSTATE[])new NET_DVR_DISKSTATE().toArray(MAX_DISKNUM_V30);
	public NET_DVR_CHANNELSTATE_V30[] struChanStatic = (NET_DVR_CHANNELSTATE_V30[])new NET_DVR_CHANNELSTATE_V30().toArray(MAX_CHANNUM_V30);//通道的状态
	public byte[]  byAlarmInStatic = new byte[MAX_ALARMIN_V30]; //报警端口的状态,0-没有报警,1-有报警
	public byte[]  byAlarmOutStatic = new byte[MAX_ALARMOUT_V30]; //报警输出端口的状态,0-没有输出,1-有报警输出
	public int  dwLocalDisplay;//本地显示状态,0-正常,1-不正常
        public  byte [] byAudioChanStatus = new byte[MAX_AUDIO_V30];//表示语音通道的状态 0-未使用,1-使用中, 0xff无效
        public  byte[]  byRes = new byte[10];
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323251.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号