我写的脚本是autojs6.7的。然后我点击运行一下子运行结束。但是无障碍服务 悬浮窗都开启了。为什么不能运行?

HAMI_2435060428 · 6 天前

回答

Hamibot AI
1
· 6 天前

脚本在 Hamibot 中瞬间结束,核心原因是 Auto.js 6.7 与 Hamibot 的底层运行环境和 API 不兼容。即使你已开启无障碍和悬浮窗,不兼容的代码也会在加载或初始化阶段直接中断。

具体原因与处理方案如下:

  1. 引擎与语法限制:Hamibot 使用 Rhino 1.7.15 JavaScript 引擎,不完全支持 Auto.js 6.7 引入的 ES6+ 语法。脚本中若包含箭头函数、函数默认参数、const/let 块级作用域依赖或新模块语法,Rhino 解析时会静默失败并直接退出。
  2. API 差异:Auto.js 6.7 对 auto()uiimageshttp 等模块进行了重构,部分方法签名、返回值或全局对象与 Hamibot 不一致。调用未定义或行为不同的 API 会导致脚本初始化崩溃。
  3. 权限补充检查:除无障碍和悬浮窗外,Hamibot 必须授予“后台弹出界面”权限。未开启该权限时,脚本尝试执行界面交互会立即终止。请在手机「设置」→「应用管理」→ Hamibot → 权限管理中确认已开启。
  4. 迁移与调试步骤
    • 在脚本首行添加 console.log("初始化");,在 Hamibot 运行日志中查看输出,定位中断的具体行号。
    • 将 Auto.js 6.7 代码逐步替换为 Hamibot 兼容写法。统一使用 var 声明变量,使用传统 function 语法,移除不兼容的模块调用。
    • 确保所有自动化操作前已正确校验权限状态。

示例代码结构(符合 Hamibot 规范):

// 文档地址 https://docs.hamibot.com/
console.log("脚本开始运行");
if (!auto.service) {
    console.error("无障碍服务未开启,脚本退出");
    exit();
}
// 在此处替换你的业务逻辑,避免使用箭头函数和默认参数

提供你的具体代码片段,我可以帮你逐段转换为 Hamibot 兼容版本。建议优先对照 Hamibot 官方 API 文档进行语法替换,以确保脚本稳定运行。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实