Arknights-Mower项目中的首页循环刷屏问题分析与解决方案

Arknights-Mower项目中的首页循环刷屏问题分析与解决方案

问题现象

在Arknights-Mower 23.05版本中,用户报告了一个异常现象:程序在执行任务时陷入了首页循环刷屏的状态,无法继续执行后续任务。从用户提供的日志和截图可以看出,程序不断重复点击首页的相同位置,形成了死循环。

问题分析

通过对日志的深入分析,我们发现以下几个关键点:

  1. 点击坐标验证:日志记录显示程序点击的坐标位置是正确的,排除了坐标计算错误的可能性。

  2. 输入设备问题:初步判断问题可能与scrcpy(屏幕复制工具)有关,这是Android设备屏幕控制和输入模拟的常用工具。

  3. 间歇性出现:该问题并非持续出现,而是间歇性发生,增加了问题复现和调试的难度。

技术背景

在自动化工具中,屏幕状态识别和输入模拟是两个核心功能:

  • 屏幕状态识别:通过图像识别技术判断当前屏幕显示的内容
  • 输入模拟:通过虚拟输入设备向目标设备发送点击、滑动等操作

当这两个环节中的任何一个出现异常,都可能导致程序陷入错误状态。

解决方案

针对这个问题,开发团队采取了以下措施:

  1. 升级scrcpy版本:计划将项目中使用的scrcpy工具升级到最新版本,以解决可能的输入模拟问题。

  2. 改进MaaTouch模块:在commit 01e55e8中改进了MaaTouch模块,这是负责处理触摸输入的核心组件。

  3. 增加状态校验:在代码中增加更多的状态检查点,防止程序陷入死循环。

预防措施

为了避免类似问题的发生,建议:

  1. 定期更新依赖:保持所有依赖库(如scrcpy)处于最新稳定版本。

  2. 完善日志系统:增加更详细的日志记录,特别是状态转换和输入反馈。

  3. 异常处理机制:实现更健壮的异常处理,当检测到异常循环时能够自动恢复。

总结

自动化工具中的循环异常是一个常见但棘手的问题,往往涉及多个组件的交互。通过分析日志、升级关键组件和改进核心模块,可以有效解决这类问题。对于用户而言,遇到类似问题时可以尝试手动暂停后重启程序,这通常能暂时解决问题,而长期解决方案则需要开发团队对底层组件进行优化。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值