求个报错解决方法
autojs吧
全部回复
仅看楼主
level 1
zmaxc 楼主
"auto";
app.launchApp("FIFA Online 3 M");
setScreenMetrics(1080, 1920);
sleep(3000);
//请求竖屏截图
requestScreenCapture(false);
sleep(1000);
while(true){
swipe(600,1000,600,1300,200);//上滑刷新
var count =0;
while(true){
var a=isfreshed();
if(a==1){
break;
}else{
sleep(20);
count++;
if(count%100==0){
toast("waiting");
}
}
}
//sleep(20);
buyPlayer();
sleep(1500);
}
function buyPlayer(){
//swipe(600,1600,600,900,400);//下滑到最底端
//截图
var img = captureScreen();
//购买按钮的坐标
var buyx=920;//+8,1067 +10,800
var buyy=800;//1067
//如果i=0;i<1 则只检测+10的球员是否有货,如果i=1;i<2 则检测+9球员,以此类推
//如果i=0;i<2 则检测+10和+9的球员是否有货,如果i=0;i<3 则检测+10,+9,+8球员,以此类推
for(i=0;i<3;i++){
//获取购买按钮的颜色值,如果可购买,颜色为#fff8cc31
var color = images.pixel(img, buyx, buyy+i*140);//获取购买按钮的颜色
//显示该颜色值
var strcolor = colors.toString(color);
if(strcolor == "#fff8cc31"){
toastLog("检测到球员,正在购买");
sleep(10);
click(buyx,buyy+i*140);
//sleep(20);
while(true){
//截图
var img1 = captureScreen();
//获取坐标点的颜色值
var color1 = images.pixel(img1, 900, 1500);
var strcolor1 = colors.toString(color1);
if(strcolor1=="
#ff263d4f"){//#
ff263d4f最终购买
break;
}else{
sleep(20);
}
}
sleep(10);
click(900,1500);//点击最终购买
sleep(500);
//840130 800,60
for(i=0;i<1;i++){
//截图
var img2 = captureScreen();
//获取坐标点的颜色值
var color2 = images.pixel(img2, 950, 60);
var strcolor2 = colors.toString(color2);
var color3 = images.pixel(img2, 950, 130);
var strcolor3 = colors.toString(color3);
if(strcolor2 == strcolor3){//#fff8cc31检测是否购买完成
toastLog("购买完成,程序退出");
exit();
}else{
sleep(100);
}
}
toastLog("购买失败,等待下一轮购买");
}else{
var ran = random(1,9);
if(ran == 6){
toast("该球员无货,请等待");
sleep(50);
}
}
}
}
function isfreshed(){
//请求竖屏截图
requestScreenCapture(false);
//截图
var imgR = captureScreen();
//获取坐标点的颜色值 判断刷新
var colorR = images.pixel(imgR, 920, 800);
var strcolorR = colors.toString(colorR);
if(strcolorR == "#bf4c616c" || strcolorR=="
#bf475c65" || strcolorR=="#
fff8cc31"){//刷新完成
return 1;
}else{
return 0;
}
}
错误日志如下 23:02:47.710/E: Wrapped java.lang.IllegalStateException: image has been recycled (<1>#44) at script.buyPlayer(<1>:44) at script(<1>:27)
2020年04月29日 01点04分 1
level 1
zmaxc 楼主
问题应该是第2次循环时img截图被回收了,不知道怎么解决
2020年04月29日 02点04分 2
level 4
var img = captureScreen();在截图后面加上
var imgx = images.copy(img);然后后面就用imgx试试
2021年01月25日 06点01分 3
1