当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当前回答
我正在使用linux debian,我正面对同样的方式。在我的AVD显示我的消息“/dev/kvm权限被拒绝”,我试图找到解决方案,然后我做什么来解决它,在终端类型:
sudo chmod -R 777 /dev/kvm
它将授予文件夹/dev/kvm的访问权限,然后在AVD上再次检查,错误消息将消失,希望它会有所帮助。
其他回答
这是因为/dev/kvm不可访问。要从android studio中访问,请运行以下命令
sudo chmod 777 -R /dev/kvm
它会询问你的密码。之后,重新启动Android Studio。
rum模拟器需要KVM。如果您还没有安装它,那么就安装它
sudo apt install qemu-kvm
虽然KVM是内置在Linux内核本身的模块,但这并不意味着默认情况下Ubuntu/Linux安装中包含了所有必要的包。你将需要一些来开始,它们可以在终端中使用以下命令安装:
& sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager
配置网桥
为了让虚拟机访问网络接口并分配它们自己的IP地址,我们需要在系统上配置桥接网络。
首先,运行以下Linux命令,以找出分配给您的网络接口的名称。知道这一点之后,我们就可以进行额外的配置。
$ ip a
在我的示例中,网络接口称为enp2s0。你的名字可能会非常相似。
为了告诉Ubuntu我们想要桥接连接,我们需要编辑网络接口配置文件。这样做完全不会对你们的联系产生负面影响。它只允许该连接与vm共享。
使用代码(Visual Studio code)或您最喜欢的文本编辑器打开以下文件:
$ code /etc/network/interfaces
当您第一次打开这个文件时,它可能是空的,或者只包含几行。您的桥接接口被称为br0,因此添加下面的行,使接口默认出现:
auto br0
在这一行下面,为当前的网络接口添加以下一行(前面确定的名称)。
iface enp2s0 inet manual
接下来,您可以添加桥接信息。这些行告诉Ubuntu你的网桥将使用DHCP自动分配IP地址,你的网桥将管理你当前的接口。
iface br0 inet dhcp
bridge_ports enp2s0
这是应用所有更改后的文件外观(如果你也有一些已经存在的行,也可以保留它们):
保存更改并退出文件。
将您的用户添加到组中
为了在没有root权限的情况下管理虚拟机,您的用户需要属于两个用户组。运行以下命令将您的用户添加到相应的组(将user1替换为您的用户名):
$ sudo adduser user1 libvirt
$ sudo adduser user1 libvirt-qemu
$ sudo adduser user1 kvm
完成后,您应该重新启动系统,以确保对用户和网络配置所做的所有更改都有机会生效。
在Ubuntu 18.04中运行以下命令对我来说是有效的 sudo chown -R /dev/kvm
我使用的是ubuntu 18.04。我也面临着同样的问题。我在终端上运行这条命令,问题就解决了。
sudo chown $USER /dev/kvm
上面的命令适用于系统中的所有用户。
如果你想只给一个特定的用户访问权限,那么运行这个命令
sudo chown UserNameHere /dev/kvm
sudo setfacl -m u:$USER:rwx /dev/kvm
为我工作。