当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:

/dev/kvm权限被拒绝。

我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?


当前回答

在更新ubuntu到18.04.1后,我得到了这个错误。我只是下载新的系统镜像模拟器或你可以说下载新的模拟器,它是为我工作。

其他回答

这是因为/dev/kvm不可访问。要从android studio中访问,请运行以下命令

sudo chmod 777 -R /dev/kvm

它会询问你的密码。之后,重新启动Android Studio。

rum模拟器需要KVM。如果您还没有安装它,那么就安装它

sudo apt install qemu-kvm

如果你只想运行Android Studio模拟器,完全没有必要安装qemu-kvm(及其所有依赖项)。

您需要做的唯一一件事就是赋予您的用户(即您登录的用户)访问/dev/kvm-设备的权限。

这需要三个简单的步骤。

第一:

创建kvm-group

Groupadd -r KVM

选项-r创建一个系统组,即GID <= 999(参见/etc/login.defs => SYS_GID_MAX)

第二:

修改/dev/kvm的权限这可以作为qemu-kvm-安装的一部分来完成,因为其中一个依赖项是安装qemu-system-common(在当前的Ubuntu系统上,包名可能会有所不同),它会依次安装文件/lib/udev/rules.d/60-qemu-system-common.rules,其中包含以下内容:

KERNEL=="kvm", GROUP="kvm", MODE="0660"

因此,如果您只是创建一个包含上述一行的文件/etc/udev/rules.d/60-qemu-permissions.rules,那么您就完成了第一步。

第三:

通过执行将您的用户名添加到组中

usermod -a -g kvm <your_username> - -a对于将用户添加到kvm-group很重要。否则,您将覆盖组设置为您的用户只属于“kvm”…

就是这样。

为了使新的udev规则和组设置生效,重新启动并再次登录是最容易的。

你也可以执行

Udevadm控件—reload-rules && Udevadm触发器

用于重新加载规则,但您仍然必须注销,并再次登录关于新组。

正如评论中提到的,从Ubuntu 18.04和Linux Mint Tara开始,你需要首先安装qemu-kvm。

检查/dev/kvm使用的所有权

ls -al /dev/kvm

用户为root,组为kvm。要查看哪些用户属于kvm组,请使用

grep kvm /etc/group

这返回

kvm:x:some_number:

在我的系统上:由于没有向右的final:,所以在KVM组中没有用户。

要将用户添加到kvm组,可以使用

sudo adduser $USER kvm

这将用户添加到组,并再次检查grep KVM /etc/group.

正如@marcolz提到的,命令newgrp kvm应该为您实时更改组成员。如果这不起作用,@Knossos提到您可能需要注销并重新登录(或重新启动),以便权限生效。或者像@nmirceac提到的那样,在同一个shell中通过su - $USER重新登录。

我尝试了sudo setfacl -m u:UserName:rwx /dev/kvm。这很有效。 在android studio中,您需要更改:tools> avd manager >(选择钢笔编辑您的设备并将“图形”从自动更改为软件),以避免模拟器可绘制错误

sudo setfacl -m u:$USER:rwx /dev/kvm

为我工作。