Я использую Ubuntu 12.04 (Precise Pangolin) с Oracle JDK 7, и когда я запускаю эмулятор Android из Eclipse , он выдает эту ошибку:
[2012-07-04 02:52:10 - Emulator] error libGL.so: cannot open shared object file: No such file or directory
[2012-07-04 02:52:10 - Emulator] Failed to load libGL.so
Также эмулятор очень медленный. Как я могу решить эту проблему?
locate libGL
на первых порах может помочьfind / -name 'libGL.so.1'
и размещался в/usr/lib/x86_64-linux-gnu
наdebian jessie
.В 64-битной Ubuntu 12.04 сделайте это так:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Источник: установка необходимых пакетов (Ubuntu 12.04)
источник
sudo apt-get install --reinstall gcc-4.7-multilib
как я нашел в ответе askubuntu.com/a/236114Я использую 64-разрядную версию Ubuntu 12.04. Используйте следующую команду для решения проблемы
sudo ln -s /usr/lib32/fglrx/libGL.so.1.2 /usr/lib/libGL.so
Примечание . Это применимо только к тем, кто использует графические драйверы AMD / ATI.
источник
Для 32-битной Ubuntu 12.04 LTS это сработало:
sudo apt-get install libgl1-mesa-dev
Ни одно из следующего не помогло:
cd /usr/lib/i386-linux-gnu/mesa/ sudo ln -s libGL.so.1.2 libGL.so sudo ln -s libGL.so.1.2 /usr/lib/libGL.so ln -s libGL.so.1.2 ~/android/android-sdk-linux/tools/lib/libGL.so
источник
Что работает для меня (ubuntu 12.04 64bit), это просто запустить:
sudo apt-get install libgl1-mesa-dev
Я обнаружил, что
libGL.so
существует в каталоге/usr/lib/x86_64-linux-gnu/
Установка 32-битной версии не работала.
источник
В 64-битной Ubuntu 12.04 нет / usr / lib64. Это только / usr / lib. Кроме того, на моей машине libGL.so отсутствует. Вместо этого файл libGLEW.so
Чтобы установить /usr/lib/LibGL.so, вы можете запустить: sudo apt-get install libgl1-mesa-dev
Однако для меня это не решило проблему. Фактически, это, вероятно, испортило мою систему.
источник
Это сработало для меня на 64-битной Ubuntu 12.10 и пакете ADT:
ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 ~/adt-bundle-linux-x86_64/sdk/tools/lib/libGL.so
Если у вас нет,
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
просто установитеlibgl1-mesa-glx
sudo apt-get install libgl1-mesa-glx
источник
Думаю, я правильно понял, никаких предупреждений и медлительности ... Это может не работать с проприетарными драйверами.
Убедитесь, что libgl1-mesa-glx: i386 установлен (даже если у вас есть файл SO x64). Затем сделайте:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so
источник
NVidia Optimus:
Работая на двойной графике (Intel и NVIDIA), я использовал следующее:
Это должно помочь:
sudo add-apt-repository ppa:bumblebee/stable sudo add-apt-repository ppa:ubuntu-x-swat/x-updates sudo apt-get update sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic sudo apt-get install ia32-libs
Когда бы вы ни захотели запустить эмулятор, просто используйте optirun:
optirun emulator @<avd_name>
Должен предупредить, что я установил Linux только вчера. Так что я действительно не знаю, что делаю…
источник
Ссылаясь на http://developer.android.com/sdk/installing/index.html , я установил ia32-libs и сделал:
ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/i386-linux-gnu/mesa/libGL.so
Это все, что я сделал, чтобы решить эту проблему.
источник
/usr/lib/x86_64-linux-gnu/mesa
вместо этогоЯ использую Linux Mint 14 - 64 бит, и у меня это сработало :):
sudo apt-get install libgl1-mesa-glx libgl1-mesa-dev
источник
В 64-разрядной версии Ubuntu 12.04 и GNOME 3.4 я сначала обратился к http://developer.android.com/sdk/installing/index.html. и установил ia32-lib, который сгенерирует / usr / lib / i386-linux-gnu /mesa/libGL.so.1.2.0
Затем я запускаю команду ниже и решил эту проблему:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so
Это немного отличается от ответа gridstation.
Думаю, нет необходимости устанавливать драйвер Mesa локально, что может вызвать проблемы с вашими настоящими видеодрайверами.
источник
В 64-разрядной версии Ubuntu
1. Проверьте libGL,
$ locate libGL.so /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
2. Создайте символическую ссылку, где установлен SDK.
ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/local/android-studio/sdk/tools/lib/libGL.so
источник
Чтобы он работал на Ubuntu 12.10 64-битной версии (Quantal Quetzal), вам нужно сделать две вещи:
1) Вам необходимо инициализировать LD_LIBRARY_PATH
Пример:
export LD_LIBRARY_PATH=~/tests/android/adt-bundle-linux-x86_64/sdk/tools/lib
Комментарии: изменить путь к вашему местоположению
2) Вам необходимо создать символическую ссылку
а) Используйте,
locate libGL
чтобы найти нужную библиотеку:rudy@vsolutions:~$ locate libGL /home/rudy/opt/android/android-sdk-linux/tools/lib/libGLES_CM_translator.so /home/rudy/opt/android/android-sdk-linux/tools/lib/libGLES_V2_translator.so /usr/lib/i386-linux-gnu/libGLU.so.1 /usr/lib/i386-linux-gnu/libGLU.so.1.3.1 ... /usr/lib32/nvidia-current/libGL.so.304.43
б) Создайте мягкую ссылку
sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so
Комментарии: используйте 64-битную библиотеку в 64-битной операционной системе!
Теперь запустите эмулятор. Моя система - Optimus , и я установил Bumblebee . Я могу использовать «Intel Open Source Technology Center», «Mesa DRI Intel (R) Ironlake Mobile», «2.1 Mesa 9.0» или «NVIDIA Corporation», «GeForce GT 330M / PCIe / SSE2», «3.3.0 NVIDIA 304.43».
а) Intel
/home/rudy/tests/android/adt-bundle-linux-x86_64/sdk//tools/emulator64-arm -avd avd_42 -scale 0.46 -gpu on -verbose
б) Nvidia
optirun /home/rudy/tests/android/adt-bundle-linux-x86_64/sdk//tools/emulator64-arm -avd avd_42 -scale 0.46 -gpu on -verbose
Комментарии:
verbose
параметр, используемый для отображения дополнительных диагностических данныхoptirun
- это команда для использования Nvidia в Bumblebee. Если у вас нет Bumblebee, не используйте его!avd
это виртуальное устройствоgpu on
использовать графическую картуисточник
OSError: libGL.so: невозможно открыть файл общих объектов: нет такого файла или каталога
Это может появиться в системах Linux, когда вы пытаетесь запустить VNL в первый раз. Чтобы решить эту проблему, создайте (как администратор) новую ссылку в
/usr/lib
:sudo ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so
Если у вас 64-битный Linux, используйте
/usr/lib64 instead
.Сначала проверьте, действительно ли
libGL.so.1.2
у вас есть in/usr/lib
or/usr/lib64
; это можно было бы назватьlibGL.so.1
вместо этого или как-то еще или находиться в другом каталоге, в зависимости от видеодрайверов.Вы можете использовать locate,
libGL
чтобы найти нужный файл, на который нужно создать ссылку.источник
Я была такая же проблема. Но в моем случае я решил это другим (думаю, лучшим) способом.
В моей ситуации (Lubuntu 13.10) было достаточно просто установить библиотеку
libgl1-mesa-dev
через диспетчер пакетов Synaptic (libgl1-mesa-dri
библиотека уже была установлена по умолчанию, когда был установлен дистрибутив Lubuntuu).Это решает все проблемы с размещением ссылок из одного файла в другой, а также предотвращает загрязнение вашей системы:
Если вы используете «системный механизм», все делается за вас. И правильно сделали. Вот почему эти инструменты существуют в первую очередь.
Лучшие rgds,
источник
Как и в случае с user1289608, я смог сделать символьную ссылку из существующей установки Mesa:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so
источник
Я использую 64-разрядную версию Ubuntu 12.04. Ссылка
/usr/lib64/libGLC.so.0
на,/usr/lib64/libGL.so
похоже, решает проблему.РЕДАКТИРОВАТЬ: он останавливает сообщения об ошибках, но эмулятор все еще работает медленно для меня.
источник
Это сработало для меня:
Перезапустите adb из DDMS:
В Eclipse: Window> Open Perspective ...> Other> DDMS. Выберите эмулятор на левой боковой панели и выберите «Перезагрузить adb».
Вы также можете перезапустить сервер adb из окна терминала.
android-sdk-linux/platform-tools/adb kill-server android-sdk-linux/platform-tools/adb start-server
источник
Я нашел папку для libGL командой "найти"
Он оказался в / usr / lib / i386-linux-gnu /
источник
Для моей установки Debian 7 'Wheezy' я использовал следующую команду:
ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 opt/android/tools/lib/libGL.so
источник
sudo apt-get install libgl1-mesa-dev cd ~/Development/adt-bundle-linux-x86_64-20140321/sdk/tools/lib unlink libGL.so ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 libGL.so
это оно!
источник
У меня возникла эта проблема, потому что я поставил галочку «Использовать хост-процессор» при создании AVD. Я попробовал это сделать, сняв этот флажок, и смог успешно запустить эмулятор. Это приемлемо для моих целей тестирования, но если использование хост-GPU важно, вы, вероятно, захотите попробовать некоторые другие решения здесь.
источник
У меня такая же проблема. Переустановка драйвера Nvidia устранила ошибку сегментации .
источник
Я решил эту проблему, переустановив libgl1, как 64-, так и 32-битные библиотеки:
$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-glx:i386
Предыстория: Раньше я переключался с бесплатного драйвера Radeon на fglrx. Думаю, это как-то испортило мою libgl1, потому что fglrx поставляется со своей собственной версией.
Кроме того, я думаю, что другие решения, представленные здесь, возможно, опасны, потому что неправильно связывать 32-битные разделяемые библиотеки в (64-битный) каталог / lib /.
источник
Проверьте, установлены ли у вас
libgl1-mesa-*
пакеты. Если да, установитеlibgl1-mesa-dev
пакет, чтобы получить неверсированные общие объекты.Вы не должны этого делать - это ошибка команды Android. Дайте им передохнуть, они всего лишь Java-разработчики.
источник