海康SDK版本:CH-HCNetSDKV6.1.6.45
add message
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000054e7c1b0, pid=33476, tid=0x0000000000006624
#
# JRE version: Java(TM) SE Runtime Environment (8.0_121-b13) (build 1.8.0_121-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.121-b13 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [msvcr100.dll+0x3c1b0]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:workspaceefs+5ddetoolshk-sdkhs_err_pid33476.log
这个是系统错误,内存相关的问题,内存溢出越界等,用jmap -heap [pid]查看内存还有很多内存。
经过咨询和测试,海康SDK回调需要把数据在内存中取出后,再进行多线程处理。意思就是回调函数中,取数据这一部分操作需要串行执行。
就是类似这样的代码
pAlarmInfo.getByteArray(0, strItsPlateResult.size()),不能多线程处理。
注:我看到官方demo中不是这样的,但是研究了一两天没还是报上面这个错,就这样吧。