回答
权限已授予但你的脚本仅运行1-2秒就结束,通常由以下原因导致。请按顺序排查:
- 未正确初始化无障碍服务
脚本开头必须调用auto()或auto.waitFor()等待无障碍服务就绪。若直接执行界面操作,脚本会因服务未激活或控件查找失败而立即退出。
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
// 后续自动化逻辑
- 脚本存在运行时异常
代码中的未捕获错误(如空指针、调用未定义函数、控件不存在时直接操作)会导致脚本崩溃。建议通过控制台查看错误堆栈,并使用try...catch捕获异常。
// 文档地址 https://docs.hamibot.com/
try {
// 你的核心逻辑
} catch (e) {
console.error("脚本异常: " + e);
}
- 系统后台限制或电池优化
多数安卓系统会强制清理后台进程。即使权限已开,系统仍可能在脚本启动后回收 Hamibot 进程。
- 将 Hamibot 加入电池优化白名单,允许后台高耗电运行。
- 在最近任务列表中锁定 Hamibot。
- 关闭省电模式。
-
逻辑中误触发退出指令
检查代码是否包含exit()、stop()或条件判断导致的提前终止。例如if (!text("目标").exists()) exit();会在找不到控件时直接结束脚本。 -
Shell 命令执行失败未处理
若脚本调用shell()执行系统命令,失败时可能中断后续流程。需检查返回码。
// 文档地址 https://docs.hamibot.com/
var result = shell("am force-stop com.tencent.mm", true);
if (result.code !== 0) {
console.error("命令失败: " + result.error);
}
快速定位方法:
- 在脚本首行添加
console.show();保持控制台可见,观察停止前的最后日志。 - 使用最小化测试脚本:仅保留
auto.waitFor(); toast("运行中"); sleep(5000);。若能稳定运行5秒,说明原脚本逻辑存在问题;若仍秒退,请重点检查系统后台策略或重新安装 Hamibot 服务。
提供控制台报错信息或具体代码片段,可进一步精准排查。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实