使用Appium启动小米Pro设备Chrome时遇权限拒绝错误求助
我之前帮不少开发者解决过MIUI设备上Appium调试Chrome的权限问题,你的情况很典型——主要是MIUI的安全限制拦截了adb的权限操作。先看你遇到的具体错误:
具体错误信息包括:
java.lang.SecurityException: PID 11584 does not have permission
Encountered internal error running command: Error: Cannot stop and clear com.android.chrome. Original error: Error executing adbExec. Original error: 'Command '/Users/sivaranjani/Library/Android/sdk/platform-tools/adb -P 5037 -s b8ee9091 shell pm clear com.android.chrom...'
下面是针对性的解决方案,按顺序尝试:
1. 开启MIUI专属的调试权限开关
小米的开发者选项里有几个普通安卓没有的关键开关,必须全部开启:
- 确保USB调试已打开(你已经做了,但再确认一次)
- 找到并开启USB调试(安全设置)(这个选项允许adb执行修改权限、清除应用数据这类敏感操作)
- 如果你的MIUI版本有禁用权限监控选项,也一并开启,防止系统拦截adb操作
2. 重新授权adb调试权限
有时候设备的adb授权会失效或未正确授予:
- 拔掉USB线,进入开发者选项→撤销USB调试授权
- 重新插上USB线,设备会弹出授权对话框,勾选始终允许此计算机进行调试,然后点击确定
3. 手动测试adb命令,排除基础问题
先在终端手动执行清除Chrome数据的命令,看是否能成功:
adb -P 5037 -s b8ee9091 shell pm clear com.android.chrome
如果手动执行还是报错,说明是设备权限问题,回到步骤1和2检查;如果手动能成功,那问题出在Appium的配置上。
4. 调整Appium的Desired Capabilities配置
如果手动adb命令正常,修改你的Appium启动参数,避免自动触发权限拦截:
- 将
noReset设置为true,禁止Appium自动清除应用数据(这样就不会触发pm clear操作) - 或者在
chromeOptions里添加启动参数,跳过Chrome首次启动的权限流程:// 示例Java代码中的配置 ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.addArguments("--no-first-run"); capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
5. 检查Chrome应用的权限设置
MIUI的隐私保护可能限制了Chrome的后台操作权限:
- 进入设备设置→应用设置→应用管理→找到Chrome
- 进入「权限」选项,确保存储「电话」等基础权限已设置为「允许」
- 同时检查「后台弹出界面」「显示悬浮窗」等权限,避免Chrome启动时被系统拦截
6. 更新adb和Appium版本
旧版本的adb或Appium可能和最新MIUI兼容性不佳:
- 下载并更新到最新的Android SDK Platform Tools(替换你当前的
/Users/sivaranjani/Library/Android/sdk/platform-tools目录) - 将Appium更新到最新稳定版:
npm install -g appium@latest
内容的提问来源于stack exchange,提问作者sivaranjani

