无法在Android Studio 2.0中启动模拟器


67

我刚刚将Android Studio从1.5升级到2.0。现在,当我尝试启动Emulator时遇到了一些奇怪的错误。我使用Ubuntu 15.10 OS

Android监视器返回此消息

sh: 1: glxinfo: not found
sh: 1: glxinfo: not found
libGL error: unable to load driver: r600_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: r600
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range    for  operation)
Major opcode of failed request:  155 (GLX)
Minor opcode of failed request:  24 (X_GLXCreateNewContext)
Value in failed request:  0x0
Serial number of failed request:  33
Current serial number in output stream:  34
 QObject::~QObject: Timers cannot be stopped from another thread

当我使用1.5版本时,一切都很好。这是android studio 2.0中的错误吗?

如何清除此错误?


1
@ greywolf82但怎么可能不存在..仅6小时后,android studio 1.5在模拟器上运行良好...这怎么可能?
Suraj Palwe '16

因为旧的仿真器以完全不同的方式工作。新的仿真器可与qemu和opengl配合使用
greywolf82

@ greywolf82意味着我需要安装此软件?
Suraj Palwe '16

不,这意味着您需要升级操作系统并可能需要更改图形卡。
greywolf82

@ greywolf82无法升级操作系统。.因为我使用的是最新版本...如何更改图形卡..任何想法?
Suraj Palwe '16

Answers:


196

确认您已在系统中安装lib64stdc ++ 6

使用32位操作系统:

# apt-get install lib64stdc++6

使用启用了多体系结构的64位操作系统:

# apt-get install lib64stdc++6:i386

然后将新安装的库链接到android sdk工具路径

$ cd $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6 $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++

编辑:在15.10 x64当前SDK(23)中,该文件夹为$ANDROID_HOME/Sdk


13
支持!像魅力一样运作。注意:$ANDROID_HOME从系统根目录到包含Android的文件夹的路径,例如:\home\tony\Android
tony gil

8
对于Android Studio中的新用户我的文件路径稍微在这种情况正在改变home/USERNAME/Android/Sdk/tools/lib64/libstdc++
吉迪恩·沙逊

4
可在〜/ Android / Sdk / tools / lib64 / libstdc ++上的Ubuntu 16.04中运行
e-info128 2013年

3
这在Ubuntu 16.04上对我不起作用。对我而言,执行“ sudo apt安装mesa-utils”解决了该问题(在此页面上搜索mesa-utils)。
吉诺

7
在我的情况下,这只是一个解决方法,路径是/ home / Android / Sdk / emulator / lib / libstdc ++万岁Ubuntu
cammando 17-4-17

25

对我来说,另一个解决方案是使用系统库:

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME


1
好的,我还没有测试过这个ans ...但是一个建议是当您ans在命令中包含Some变量时。尝试使用大写字母。因为使用起来很不错。.谢谢您的
回答

1
如何使用此选项从UI启动模拟器?我太懒了,每次都无法从终端启动仿真器(:
aleien

您可以将其放入运行该命令的gradle任务中。然后,您可以从Gradle选项卡或使用顶部栏上的Run Configuration运行它。
Logain

尝试按照自己的方式行事,但要犯一个错误:sh: 1: glxinfo: not found [139650585499456]:ERROR:./android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib Could not launch '../emulator/qemu/linux-x86_64/qemu-system-i386': No such file or directory
Morozov

看起来您缺少一些库。尝试使用选定的答案,或者像stackoverflow.com/questions/36258908/…之类的答案,具体取决于您的操作系统
Logain

22

我在Arch Linux机器上遇到了同样的问题。我必须做两件事来解决所有问题:

  1. 安装mesa-demos。这是Arch Linux软件包,其中包含glxinfo

    $ sudo pacman -S mesa-demos
    
  2. 运行带有-use-system-libs标志的仿真器:

    $ emulator -avd <AVD name> -use-system-libs
    

    要在Android Studio中启用此行为,我在中设置了ANDROID_EMULATOR_USE_SYSTEM_LIBSenviornment变量~/.zshrc

    export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
    

    您也可以在~/.profile或中进行设置~/.bashrc。在所有这些情况下,您都必须从命令行启动Android Studio。或者,您可以将其设置~/.pam_environment为能够从桌面启动器启动Android Studio:

    ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
    

这应该是最好的答案(假设已安装所需的系统库),因为您不会弄乱软件内容本身。
gbc921

1
是。请注意,您可以使用emulator -list-avds
eis 18'Jan

16

完成上述两个步骤(由Giorgio Ghiatis发布)之后,如果未安装mesa-utils,请安装它。

$ sudo apt-get install mesa-utils


上面的意思是什么?
WSS

乔治·吉亚提斯(Giorgio Ghiatis)发布的步骤
ikolim '17

13
$ cd Android/Sdk/emulator/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6

对我有用


1
这为我做到了,ubuntu 17.10上的android studio 3.0.1
Olian04 '18

我在查找lib64路径时遇到麻烦。这工作了!
埃里克(Eric)

9

Ubuntu 16.04 LTS x64上,我遇到的同样问题是:

  • Android Studio 2.2.3
  • Android SDK工具25.2.4
  • 模拟器版本25.2.4-3534729(从“模拟器”>“扩展控件”>“帮助”>“关于”)

我的图形卡是AMD / ATI Radeon,我从Android开放源代码项目-问题跟踪程序的该线程中读取了以下内容

该问题的根本原因很可能是Radeon GL驱动程序库需要的libstdc ++。so比与模拟器捆绑在一起的库更新。

这是我解决问题的方法:

  1. 安装lib64stdc ++ 6

    $ sudo apt-get install lib64stdc++6:i386   
    
  2. 安装mesa-demos

    $ sudo apt-get install mesa-utils
    
  3. 通过将libstdc ++。so.6重命名为libstdc ++。so.6.bak,将其移开

    $ cd ~/$ANDROID_HOME/Android/Sdk/tools/lib64/libstdc++
    $ mv libstdc++.so.6 libstdc++.so.6.bak
    

这些步骤在Ubuntu 16.04上对我有用。感谢您提供它们。我感到奇怪的是,他们的官方安装说明当前告诉您安装错误的库。
马特·韦尔克

这些步骤对我来说使用Ubuntu 16.10在Android Studio 2.2.3上有效
Gustavomcls

在Ubuntu 17.04上,第1步和第3步运行良好(没有第2步)
Georgi Koemdzhiev

2

在更新构建工具25.3.1libstdc++.so.6文件后,将其移至$ANDROID_HOME/Sdk/emulator/lib64/libstdc++/libstdc++.so.6


1

在特殊情况下,由于另一个正在运行的VirtualBox VM,您的KVM资源可能很忙。

(我遇到了这个问题)。

为了解决这个问题,我使用Genymotion代替了Android Emulator。

然后,我可以将Genymotion与其他VirtualBox VM一起运行。


1
cd ~/Android/Sdk/emulator/lib64/libstdc++ 
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6

试试看!


0

在Ubuntu 16 LTS上修复

1,安装lib64stdc ++ 6

sudo apt-get install lib64stdc++6:i386  

2.安装mesa-demos

sudo apt-get install mesa-utils



0

我遇到了同样的问题,该解决方案对我不起作用。

适用于我的解决方案是通过编辑$ HOME / .profile并添加下一行:export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1,然后重新登录,来告知Android Studio使用系统库而不是内置库 。


0

创建一个新的AVD,或编辑一个现有的AVD,并将“仿真性能图形”从“自动”更改为“软件”

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.