2016-04-11 3 views
63

Я только что обновил свою студию Android от 1.5 до 2.0. И теперь перед тем, как попытаться запустить эмулятор, я столкнулся с какой-то странной ошибкой. Я использую Ubuntu 15.10 OSНе удается запустить эмулятор в студии android 2.0

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 часов назад андроид Studio 1.5 работал хорошо с эмулятором ... это возможно? –

+0

Поскольку старый эмулятор работал по-другому. Новый эмулятор работает с qemu и opengl – greywolf82

+0

@ greywolf82, что означает, что мне нужно установить это программное обеспечение? –

ответ

193

Убедитесь, что вы установили в вашей системе 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++ 

EDIT: в 15.10 x64 с текущей SDk (23), папка $ANDROID_HOME/Sdk

+13

UPVOTED! работал как шарм. ПРИМЕЧАНИЕ ДЛЯ NEWBIES: '$ ANDROID_HOME' - это путь от корня вашей системы к папке, в которой содержится Android. Например:' \ home \ tony \ Android' –

+0

эй же проблема со мной и когда я использую 'cd $ ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdC++ 'command его дать мне это' bash: cd:/android-sdk-linux_x86/tools/lib64/libstdC++: Нет такого файла или каталога', пожалуйста, помогите. – sushildlh

+0

@sushildlh вам нужно заменить '$ ANDROID_HOME' на ваш реальный путь установки sdk для Android. Затем остальная часть пути должна быть такой же, как в ответе по умолчанию, иначе измените его соответственно на ваш. –

17

После выполнения двух шагов выше, установите мез-утилиту, если он не установлен.

$ Sudo APT-получить установку меза-Utils

+0

Что вы подразумеваете под этим? – WSS

+0

Шаги, отправленные Джорджо Гитатисом – ikolim

24

Другим решением для меня было использовать системы библиотеки:

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME

+1

В порядке Я не тестировал этот анс ... но одно предложение, когда вы используете ans, который содержит некоторую переменную в команде. Попробуйте использовать букву UPPERCASE. потому что это хорошая pratice использовать .. спасибо за ваш ans –

+1

спасибо @SurajPalwe, я просто изменил его на верхний регистр – Logain

+1

Как я могу запустить эмулятор из пользовательского интерфейса с этой опцией? Я слишком ленив, чтобы каждый раз запускать эмулятор с терминала (: – aleien

21

Я была такая же проблема на поле Arch Linux. Я должен был сделать две вещи, чтобы решить все вопросы:

  1. Install 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_LIBS enviornment в ~/.zshrc.

    export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1 
    

    Вы также можете установить это в ~/.profile или ~/.bashrc. Во всех этих случаях вам нужно будет запустить Android Studio из командной строки. Кроме того, вы можете установить его в ~/.pam_environment, чтобы быть в состоянии начать Android Studio с настольного пусковую:

    ANDROID_EMULATOR_USE_SYSTEM_LIBS=1 
    
+0

Это должно быть лучший ответ (предполагая, что требуется система lib), так как вы не вмешиваетесь в содержимое самого программного обеспечения. – gbc921

+1

Да. Обратите внимание, что вы можете перечислить свои AVD с помощью 'emulator -list-avds' – eis

9

Та же проблема для меня на Ubuntu 16.04 LTS x64 с:

  • Android Studio 2.2.3
  • Android SDK Tools 25.2.4
  • Emulator версия 25.2.4-3534729 (от эмулятора> Extended Controls> Справка> О)

Моя графическая карта является AMD/ATI Radeon и я прочитал с this thread на Android Open Source Project - Issue Tracker, что:

The root cause of the problem is likely that the Radeon GL driver library requires a more recent libstdc++.so than the one bundled with the emulator.

Вот как я исправил проблему:

  1. Установка lib64stdC++ 6

    $ sudo apt-get install lib64stdc++6:i386 
    
  2. Установите меза-демки

    $ sudo apt-get install mesa-utils 
    
  3. Move libstdC++ so.6 вне. чтобы переименовать его в libstdC++. so.6.bak

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

Эти шаги работали для меня на Ubuntu 16.04. Спасибо, что предоставили их. Мне странно, что их официальные инструкции по установке в настоящее время говорят вам установить неправильные библиотеки. – Welkie

+0

Эти шаги работали для меня на Android Studio 2.2.3 с использованием Ubuntu 16.10 – Gustavomcls

+0

На Ubuntu 17.04 шаги 1 и 3 работали нормально (без шага 2) –

0

В чрезвычайной ситуации ваши KVM ресурсы могут быть заняты из-за другой работает VirtualBox виртуальных машин.

(Я испытал эту проблему).

Чтобы преодолеть эту проблему, я использовал Genymotion вместо Android Emulator.

Тогда я мог бы запустить Genymotion вместе с другими виртуальными виртуальными машинами VirtualBox.

0

Фикс на Ubuntu LTS 16

1.Install lib64stdC++ 6

sudo apt-get install lib64stdc++6:i386 

2.Install меза-демки

sudo apt-get install mesa-utils 
2

после обновления, чтобы построить инструменты 25.3.1 libstdc++.so.6 файл был перемещен в $ANDROID_HOME/Sdk/emulator/lib64/libstdc++/libstdc++.so.6

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

он работал для меня

+0

Это сделало это для меня, Android 3.0.1 на ubuntu 17.10 – Olian04

0

Все приведенные выше ответы не работает для меня, как «Android Emulator "не была установлена ​​со стандартной установкой Android Studio. Убедитесь, что вы установили его, а затем попробуйте ответить выше. enter image description here

0

У меня была такая же проблема, и решение не сработало для меня.

Решение, которое работает для меня, предназначалось для Android Studio, использующего системные библиотеки вместо встроенного, путем редактирования $ HOME/.profile и добавления следующей строки: export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1, а затем повторного входа в систему.

0

Создать новый AVD или отредактировать существующую и изменить ЭМУЛИРОВАННОЙ Производительность графики из автоматического Software

enter image description here

0
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 

Попробуй!