auto.js 中文文档 下载 App

脚本运行失败排错指南——一步步定位为什么脚本不跑

排查流程

1. 检查无障碍服务状态(最常见)

if (auto.service == null) {
  toast("无障碍服务未开启");
  exit();
}

看侧拉菜单无障碍图标是不是绿的。是灰色的话跳到 无障碍服务 重开。

2. 检查脚本开头有没有 auto.waitFor()

缺少 auto.waitFor() 时,脚本可能在无障碍服务还没完全就绪时就开始执行操作,导致全部失败。推荐所有脚本第一行就是 auto.waitFor()。

3. 检查悬浮窗权限

脚本依赖悬浮窗(比如 floaty 模块、录制按钮)时,悬浮窗没开会导致相关 API 静默失败或抛异常。

4. 看日志面板

侧拉菜单 → 日志。红色是错误、黄色是警告、白色是正常输出。搜 "Error" 或 "Exception" 关键字定位问题行。

5. 简化脚本测试

如果你的长脚本跑不起来,先写一个最小测试:

auto.waitFor();
toast("如果看到这条提示说明基础配置没问题");

这个能跑 → 问题在你的业务代码这个跑不动 → 问题在权限 / 配置 / 安装

6. 环境问题排查

现象可能原因解决
脚本点按钮没反应目标 APP 不暴露控件树用坐标操作兜底
toast 显示但操作没发生无障碍服务卡住了关闭再开启无障碍开关
脚本一运行就崩JS 语法错误日志面板看具体哪行
打包后 APK 闪退权限没齐检查 config.json 权限声明

最常见的 5 个错误

错误一:控件找不到

text("签到").click(); // 抛异常:NoSuchElementException

→ 用 findOnce + if 判断,或加 waitFor 等待加载

错误二:无障碍服务意外断开

脚本跑一半突然停了 → 检查是否被系统杀、是否被省电模式限制

错误三:sleep 太长或太短

目标还没加载完就执行 → 改成 waitFor已经跑完还在 sleep 浪费时间 → 改短

错误四:坐标硬编码失效

换设备 / APP 更新后按钮位置变了 → 改用选择器

错误五:setTimeout / setInterval 不执行

脚本主线程结束后定时器会被清理 → 用 while 循环或 jobs 模块持久化