Android Studio 2.3使用来自控制台的模拟器,对于root用户,"/ dev/kvm device:permission denied"

Joh*_*now 12 linux ubuntu kvm permission-denied android-emulator

我正在尝试使用Android Studio 2.3的avdmanager (通过命令行)创建一个虚拟的android设备

所有命令都以root用户身份执行

当我尝试通过$ ~/Android/Sdk/tools/./emulator @Nexus_5X_Api_23_x86输出启动模拟器时:

$ kvm-ok

我正在使用64位的Ubuntu 16.04服务器,Android Studio是通过x11转发启动的,因此使用了我的桌面环境(这也是ubuntu 16.04,64位!)

当我打字时/dev/kvm它给了我:

emulator-check

要证明我尝试访问的.avd存在:
~/Android/Sdk/tools/./emulator @Nexus_5X_Api_23_x86 -verbose

给出输出:
$ ~/Android/Sdk/tools/./emulator @Nexus_5X_Api_23_x86

进一步的权限$ kvm-ok是:

/dev/kvm

表演emulator-check给了我:

~/Android/Sdk/tools/./emulator @Nexus_5X_Api_23_x86 -verbose

我真的不知道该怎么做,在整个论坛上搜索但没有找到我的系统的这个问题的复制品,其他系统上同样问题的修复对我来说不起作用,已经尝试完全清除并重新安装所有qemu,libvirt,libvirtd和kvm软件包,但没有成功.

任何帮助表示赞赏!!

编辑:
$ ~/Android/Sdk/tools/./emulator @Nexus_5X_Api_23_x86给我,

以下输出:

emulator: ERROR: x86_64 emulation currently requires hardware acceleration!
Please ensure KVM is properly installed and usable.
CPU acceleration status: This user doesn't have permissions to use KVM (/dev/kvm)
Run Code Online (Sandbox Code Playgroud)

Rag*_*lan 41

试试吧.这对我有用

$ sudo chown username -R /dev/kvm
Run Code Online (Sandbox Code Playgroud)

有时您还需要运行此代码

$ cd Android/Sdk/emulator/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)

  • 这对我很有用..谢谢:) (4认同)
  • 我每次尝试打开模拟器时都必须这样做吗?这是应该怎么走?没有一次性解决方案吗? (2认同)

Jer*_*ews 19

请尝试以下步骤:

如下安装qemu-kvm

sudo apt install qemu-kvm
Run Code Online (Sandbox Code Playgroud)

使用以下命令将用户添加到kvm组:

sudo adduser <username> kvm
Run Code Online (Sandbox Code Playgroud)

如果您的权限被拒绝,请尝试执行以下命令

sudo chown <username> /dev/kvm
Run Code Online (Sandbox Code Playgroud)

它在Ubuntu 18.04中对我有用


Eig*_*ool 5

假设您要使用当前操作系统用户应用此所有权更改,请使用以下命令:

sudo chown $(whoami) -R /dev/kvm