You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium UIAutomator2测试后安卓应用无法关闭,如何解决?

在Appium 2 + UiAutomator2中解决driver.close()/driver.quit()无法关闭应用的问题

针对调用driver.close()或driver.quit()后安卓应用仍保持打开的情况,可尝试以下解决方案:

  • 确保驱动与Appium版本兼容
    先检查UiAutomator2驱动是否为最新稳定版,执行命令更新:

    appium driver update uiautomator2
    

    同时确认Appium 2使用官方稳定版本,避免开发分支版本。

  • 强制终止应用进程
    如果driver.quit()无法彻底终止应用,可在测试用例的清理阶段直接通过ADB命令强制杀死应用进程,示例代码(以Python为例):

    import os
    
    def teardown():
        # 先执行常规quit操作
        driver.quit()
        # 强制终止目标应用进程
        os.system("adb shell am force-stop com.your.app.package")
    

    替换com.your.app.package为测试应用的包名即可。

  • 调整Capabilities配置
    初始化Driver时,修改Capabilities参数控制应用状态:

    • 设置"noReset": false:确保每次测试完成后重置应用状态,清除缓存和临时数据
    • 设置"fullReset": true:会卸载并重新安装应用,适合需要彻底清理测试环境的场景(注意:该操作会清除应用本地数据)
      另外注意:driver.close()仅关闭当前应用窗口,若应用存在多进程或后台窗口,必须使用driver.quit()终止整个会话。
  • 重启UiAutomator2后台服务
    若UiAutomator2后台服务未正常退出,会导致应用进程无法终止,可在清理阶段添加以下ADB命令:

    adb shell am force-stop io.appium.uiautomator2.server
    adb shell am force-stop io.appium.uiautomator2.server.test
    
  • 排查测试用例的资源泄漏
    检查测试过程中是否有未处理的弹窗、悬浮窗,或者持续运行的后台线程,这些情况可能阻止应用正常退出。确保每个测试步骤完成后,应用回到可正常退出的状态。

内容的提问来源于stack exchange,提问作者user12974983

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:45:05