Appium执行adbExec命令出现未知服务端错误,安装APK失败如何解决?
Appium adbExec 安全异常报错解决方案
问题根因
这个报错本质是你使用的安卓测试设备(安卓11及以上版本居多)的adb进程没有android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS权限,导致执行带-g参数的adb安装命令(安装时自动授予所有运行时权限)时触发安全拦截。
排查步骤
- 确认测试设备安卓版本:安卓11及以上版本的定制ROM(小米、华为、vivo、OPPO等)普遍对adb安装权限做了额外限制,是该问题的高发场景。
- 检查开发者选项开关:确认「USB调试」「USB安装」「允许USB调试修改权限」这类开关是否已经开启。
- 手动复现问题:直接在本地终端运行报错中给出的adb命令,确认是否独立于Appium也能复现报错,排除Appium调用参数错误的可能。
解决方案
方案1:调整设备权限(优先选择)
- 进入设备的「开发者选项」页面,开启以下权限:
- USB调试
- USB安装(允许通过USB渠道安装应用)
- USB调试安全设置(允许USB调试修改应用权限、模拟点击)
- 部分品牌的设备要求插入SIM卡才能开启USB安装相关权限,无SIM的测试机可先插入实体SIM卡后再开启对应开关。
- 重新插拔USB线,在弹出的调试授权弹窗中勾选「始终允许此计算机调试」,点击确认。
- 重新运行Appium测试验证是否解决。
方案2:修改Appium启动配置
如果无法修改设备权限,可以在Appium的Desired Capabilities中添加noGrantAppPermissions参数,禁用安装时自动加-g参数的逻辑:"noGrantAppPermissions": true
注意:该配置生效后,Appium不会自动给settings APK、被测应用授予运行时权限,你需要后续通过adb命令或者UI操作手动授予所需权限。
方案3:手动预安装依赖APK
如果上述方案都不生效,可以先手动安装Appium的settings APK,跳过Appium自动安装的步骤:
- 去掉
-g参数执行安装命令:adb -s 3af689100106 install "C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\io.appium.settings\apks\settings_apk-debug.apk" - 安装完成后手动进入应用设置,给io.appium.settings应用授予所有需要的权限。
- 重新启动Appium测试即可。
内容的提问来源于stack exchange,提问作者Ger
相关产品推荐
相关产品推荐

