找色函数放入循环后,运行几圈就提示对象为空?

找色函数放入循环后,运行几圈就提示对象为空?
07:19:36.895/E: Wrapped java.lang.NullPointerException: Attempt to invoke virtual method 'org.opencv.core.Mat com.stardust.autojs.core.image.ImageWrapper.getMat()' on a null object reference (images.js#78)
at script(images.js:78)
at script(<模糊找色>:10)

var i=1;
while(i<11){
if(!requestScreenCapture()){
toast("请求截图失败");
exit();
}
var img = captureScreen();
//0x9966ff为编辑器紫色字体的颜色
toastLog("开始找色");
var point = findColor(img, 0x9966ff);
if(point){
toastLog("x = " + point.x + ", y = " + point.y);
}else{
toastLog("没有找到");
}
i++;
}

@八百药瓶子 感谢,我试试,这个sleep(5000)感觉并没有睡眠5s啊。

@八百药瓶子 再找色之后加了sleep(3000),有所改善,在执行了12次后又出现了同样问题。

截图权限在最开始获取一次就可以,不用每次循环都请求;
captureScreen()之前最好加个延时,不然页面没加载完就截图了;
可以把截图导出到SD卡看看是否是因为截图与期望不符导致的问题。

  • 6
    帖子
  • 1558
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待