当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当前回答
最终在Ubuntu 18.04上为我解决了这个问题:
sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/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重新登录。
为了在Linux中制作一个虚拟设备-我必须遵循这三个命令,它可以帮助我避免构建avd设备的麻烦-过程是-
sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm
所以,现在你已经准备好了,重新启动android studio并开始使用模拟器构建应用程序。
试试这个,对我很管用:
Sudo apt安装qemu-kvm sudo chown -R <username>:<username> /dev/kvm
这是因为/dev/kvm不可访问。要从android studio中访问,请运行以下命令
sudo chmod 777 -R /dev/kvm
它会询问你的密码。之后,重新启动Android Studio。
rum模拟器需要KVM。如果您还没有安装它,那么就安装它
sudo apt install qemu-kvm