测试摄像头实时视频程序时,可以正常运行,并有期望的结果,但是会报NullPointException,看到红色弹出信息就很烦。于是就去找啊找,找啊找......
1️⃣ 未使用多线程时,正常的不能再正常了,考虑问题会在代码同步上,于是使用了同步锁去解决
private ReentrantLock lock = new ReentrantLock();
2️⃣ 报空指针异常的频率降低了,应该是有一定作用了,但是还是有啊...... 然后想到问题应该出在camera获取帧图像上,然后的然后就加了判断。
if(!camera.isNull() && camera.grab(){
}
逻辑就变成了这样
lock.lock();
try{
if(!camera.isNull() && camera.grab()) {
}
}finally {
lock.unlock();
}