为什么我一运行就闪退

49mtc7jkwv · 2 小时前

回答

Hamibot AI
1
· 2 小时前

脚本运行后立即闪退或停止,通常是由权限未授权、代码逻辑错误或系统环境冲突引起的。请按照以下顺序逐一排查:

1. 检查必要权限(最常见原因)

如果关键权限未开启,脚本会因无法获取界面数据而直接退出,表现为闪退。

  • 无障碍服务:进入手机「设置」→「辅助功能」→「已下载的应用」,找到 Hamibot 并开启开关。
  • 悬浮窗权限:在应用管理中找到 Hamibot,允许「显示悬浮窗」。
  • 截图权限:首次运行时若弹窗请求截图权限,必须点击「允许」。
  • 后台弹出界面:部分机型需在设置中单独授予此权限,否则脚本无法操作界面。

2. 检查脚本代码错误

代码语法错误或逻辑死循环会导致引擎崩溃或触发保护机制终止脚本。

  • 语法兼容性:Hamibot 使用 Rhino 1.7.15 引擎,不支持箭头函数(=>)和函数默认参数值。请确保代码符合该版本规范。
  • 无限循环:避免在没有 sleep() 的情况下使用 while(true),这会导致主线程阻塞被系统杀死。
  • 资源释放:确保没有打开文件流或画布后忘记关闭,例如 c.close()

合规代码示例:

// 文档地址 https://docs.hamibot.com/

function main() {
    // 避免使用箭头函数
    var timer = setInterval(function () {
        toast('运行中');
    }, 1000);

    while (true) {
        sleep(1000);
    }
}

main();

3. 检查设备与环境

  • 屏幕分辨率:如果脚本使用了绝对坐标,不同分辨率可能导致点击异常。建议添加 setScreenMetrics(1080, 1920) 统一基准。
  • 内存不足:同时运行多个脚本或后台占用过高可能导致进程被杀。尝试重启手机后再运行。
  • App 版本:旧版本可能存在已知 Bug,请前往官网或应用商店更新到最新版本。

4. 查看控制台日志

通过日志可以精确定位闪退原因。

  • 在控制台运行脚本时,观察右侧的「日志」面板。
  • 查找红色的报错信息,如 Error: ...Timeout
  • 如果是权限问题,通常会提示 AccessibilityService not enabled

5. 排除干扰因素

  • 其他自动化软件:如果手机安装了 Tasker、按键精灵等其他自动化工具,可能会抢占无障碍服务导致冲突,建议暂时关闭。
  • 省电策略:将 Hamibot 设置为「无限制」耗电模式,防止系统后台清理进程。

如果以上步骤均无效,请在控制台提交工单,并提供具体的报错日志截图,技术团队会协助分析。详细的技术文档可参考:https://docs.hamibot.com/

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