Ubuntu 20.04.3系统下Android Emulator无法启动问题求助
Android模拟器启动卡加载问题分析
核心报错定位
根据启动日志的关键报错信息:
qemu-system-x86_64: Could not open '/home/*****/Android/Sdk/system-images/android-30/google_apis_playstore/x86//system.img': Operation not permitted
已确认目录及文件权限为777,排除普通文件权限问题,属于系统额外安全/权限限制导致,常见原因及解决方案如下:
可能原因及解决方法
- AppArmor安全策略拦截
Ubuntu默认启用AppArmor安全模块,会对qemu-system-x86_64进程的文件访问范围做限制,不符合预设规则的访问即使权限足够也会被拦截。
验证及解决:执行命令sudo aa-complain /usr/bin/qemu-system-x86_64将qemu进程的AppArmor规则临时切换为警告模式,若此时模拟器可正常启动即可定位问题,后续可自定义添加对应镜像目录的访问规则,无需长期关闭AppArmor。 - Snap沙箱访问限制
若你的Android Studio或Android SDK是通过Snap渠道安装,Snap自带的沙箱机制会限制应用对/home目录下非授权路径的读写权限,权限设置为777也无法绕过该限制。
解决方法:将Android SDK迁移到Snap允许的授权目录,或卸载Snap版Android Studio后通过官方压缩包渠道重新安装。 - 文件扩展属性锁限制
镜像文件可能被设置了不可修改的扩展属性(如chattr的i属性),导致进程无法正常读取文件。
验证及解决:执行命令lsattr /home/*****/Android/Sdk/system-images/android-30/google_apis_playstore/x86/system.img,如果输出中带有i标记,执行sudo chattr -i 对应镜像文件完整路径移除属性后重新启动模拟器即可。 - 用户组权限缺失
当前运行模拟器的用户未加入kvm、libvirt用户组,导致qemu进程没有足够的虚拟化相关访问权限。
解决方法:执行命令sudo usermod -aG kvm,libvirt $USER,执行完成后重启系统生效。
内容的提问来源于stack exchange,提问作者Marco Domenicano
相关产品推荐
相关产品推荐

