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

Appium 1.8+Android7.0环境下无法启动Chrome浏览器求助

解决Appium 1.8启动Android Chrome时UiAutomator异常退出的问题

我明白你在使用Appium 1.8启动Android设备上的Chrome浏览器时,碰到了UiAutomator相关的权限报错和进程意外退出的问题,下面一步步帮你排查解决:

错误核心点分析

从你提供的日志能看出两个关键问题:

  1. ADB进程操作权限不足:/system/bin/sh: kill: 21431: Operation not permitted,说明当前ADB用户没有权限操作指定的UiAutomator进程
  2. UiAutomator意外终止:UiAutomator exited unexpectedly with code 255,这类错误通常和权限冲突、依赖不兼容或配置异常有关

具体解决方案

1. 尝试获取ADB Root权限(设备支持的话)

如果你的测试设备已经Root,可以用Root权限重启ADB,解决进程操作权限问题:

adb kill-server
adb root
adb devices

重启Appium服务后再运行测试。如果设备无法Root,直接看下面的方案。

2. 优化Desired Capabilities配置

你的现有配置可以做几个关键调整:

  • 指定automationName为UiAutomator2(Appium 1.8开始官方推荐用UiAutomator2替代旧版UiAutomator)
  • 手动指定chromedriverExecutable路径(避免Appium自动下载的驱动和设备Chrome版本不兼容)
  • 暂时关闭noReset(缓存残留可能引发权限冲突)

修改后的代码示例:

public static void main(String[] args) {
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("deviceName", "My Phone");
    caps.setCapability("platformName", "Android");
    caps.setCapability("browserName", "Chrome");
    // 明确指定使用UiAutomator2
    caps.setCapability("automationName", "UiAutomator2");
    // 替换为你本地对应版本ChromeDriver的实际路径
    caps.setCapability("chromedriverExecutable", "/Users/yourname/path/to/chromedriver");
    caps.setCapability("noReset", false);
    caps.setCapability("fullReset", false);

    AppiumDriver<MobileElement> driver = null;
    try {
        driver = new AndroidDriver<>(new URL("http://127.0.0.1:4501/wd/hub"), caps);
    } catch (MalformedURLException e) {
        System.out.println(e.getMessage());
    }
    driver.get("http://www.google.com");
}

3. 确保ChromeDriver与设备Chrome版本匹配

ChromeDriver版本必须和设备上安装的Chrome浏览器严格对应:

  • 查看设备Chrome版本:设置→应用→Chrome→版本号
  • 下载对应版本的ChromeDriver(Appium 1.8自带的驱动可能较旧,手动指定更可靠)

4. 重启ADB和Appium服务

进程冲突也可能导致这类问题,完全重启相关服务:

# 停止ADB服务
adb kill-server
# 重启Appium服务(先关闭当前运行的Appium进程)
appium --port 4501

5. 检查设备开发者选项设置

确保设备开发者选项中:

  • USB调试已开启
  • **USB调试(安全设置)**已开启(Android 10+设备需要此选项,允许ADB执行敏感操作)
  • 暂时关闭权限监控类选项(如果有),避免拦截ADB的进程操作

验证调整

按照上述步骤修改后,重新运行测试代码,应该能解决UiAutomator的权限问题和意外退出的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:38:26