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

运行Appium自动化测试时如何关闭安卓模拟器Nested Virtualization弹窗

解决方案

方案1:屏蔽系统层嵌套虚拟化通知

该弹窗为Linux桌面环境检测到KVM嵌套虚拟化启用后触发的系统通知,可直接关闭对应通知源的弹窗权限:

  • GNOME桌面执行命令:
    gsettings set org.gnome.desktop.notifications.application:/org/gnome/settings-daemon/plugins/hardware/ enable false
  • KDE桌面进入「系统设置-通知」,搜索Virtualization相关通知规则,关闭弹窗权限即可。

方案2:模拟器启动时追加参数跳过嵌套检测

启动安卓模拟器时添加忽略嵌套虚拟化检测的QEMU参数,从根源上避免触发通知:
emulator @<你的模拟器名称> -qemu -enable-kvm -ignore-missing-feature nested-virtualization
如果通过Appium/Selenoid自动拉起模拟器,可将参数写入对应配置:

  • Appium端在capabilities中添加配置:avdArgs: "-qemu -ignore-missing-feature nested-virtualization"
  • Selenoid端在安卓容器的启动配置中追加上述模拟器参数即可。

方案3:切断容器与宿主桌面的通知通路

使用Selenoid容器化部署时,可在启动容器时移除X11转发配置,或添加环境变量阻断通知推送通路,避免容器触发的通知显示在宿主桌面,启动命令示例:
docker run -d --name selenoid-android -e DISPLAY= -e QT_QPA_PLATFORM=offscreen -p 5555:5555 selenoid/android:<镜像版本号>

方案4:修改KVM模块配置关闭检测提示

如果上述方案均不生效,可直接修改KVM内核模块配置,关闭嵌套虚拟化相关的用户提示:

  1. 编辑KVM配置文件:sudo nano /etc/modprobe.d/kvm.conf
  2. 追加如下配置:
    options kvm ignore_msrs=1 report_ignored_msrs=0
  3. 重启KVM模块生效(Intel处理器执行以下命令,AMD处理器将kvm_intel替换为kvm_amd即可):
    sudo modprobe -r kvm_intel && sudo modprobe kvm_intel

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:21:00