Estoy usando Ubuntu 12.04 (Precise Pangolin) con Oracle JDK 7, y cuando estoy ejecutando el emulador de Android de Eclipse , aparece este error:
[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
Además, el emulador es muy lento. ¿Como puedó resolver esté problema?
locate libGL
al principio puede ayudarfind / -name 'libGL.so.1'
y lo ubiqué/usr/lib/x86_64-linux-gnu
endebian jessie
.En Ubuntu 12.04 de 64 bits, hazlo así:
$ 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
Fuente: Instalación de los paquetes necesarios (Ubuntu 12.04)
fuente
sudo apt-get install --reinstall gcc-4.7-multilib
como encontré en la respuesta askubuntu.com/a/236114Estoy usando Ubuntu 12.04 de 64 bits. Usando el siguiente comando para resolver el problema
sudo ln -s /usr/lib32/fglrx/libGL.so.1.2 /usr/lib/libGL.so
Nota : Esto es aplicable solo a aquellos que usan los controladores gráficos AMD / ATI.
fuente
Para Ubuntu 12.04 LTS de 32 bits, esto funcionó:
sudo apt-get install libgl1-mesa-dev
Ninguno de los siguientes funcionó:
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
fuente
Lo que funciona para mí (ubuntu 12.04 64bit) fue simplemente ejecutar:
sudo apt-get install libgl1-mesa-dev
encontre eso
libGL.so
existe en el directorio/usr/lib/x86_64-linux-gnu/
La instalación de la versión de 32 bits no funcionaba.
fuente
En Ubuntu 12.04 de 64 bits, no hay / usr / lib64. Es solo / usr / lib. Además, en mi máquina, libGL.so no está presente. En cambio, el archivo es libGLEW.so
Para instalar /usr/lib/LibGL.so puede ejecutar: sudo apt-get install libgl1-mesa-dev
Sin embargo, no me resolvió el problema. De hecho, probablemente arruinó mi sistema.
fuente
Esto funcionó para mí en Ubuntu 12.10 de 64 bits y el paquete ADT:
ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 ~/adt-bundle-linux-x86_64/sdk/tools/lib/libGL.so
Si no
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
acaba de instalarlibgl1-mesa-glx
sudo apt-get install libgl1-mesa-glx
fuente
Creo que lo hice bien, sin advertencias ni lentitud ... Sin embargo, esto podría no funcionar con controladores propietarios.
Asegúrese de que libgl1-mesa-glx: i386 esté instalado (incluso si tiene un archivo SO x64). Entonces hazlo:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so
fuente
NVidia Optimus:
Ejecutando en gráficos duales (intel y nvidia), usé lo siguiente:
Esto debería funcionar:
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
Siempre que desee ejecutar el emulador, simplemente use optirun:
optirun emulator @<avd_name>
Debo advertir que solo instalé Linux ayer. Así que realmente no sé lo que estoy haciendo….
fuente
Refiriéndome a http://developer.android.com/sdk/installing/index.html , instalé ia32-libs e hice:
ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/i386-linux-gnu/mesa/libGL.so
Eso es todo lo que hice para resolver este problema.
fuente
/usr/lib/x86_64-linux-gnu/mesa
en su lugarUtilizo Linux Mint 14 - 64 bit y para mí funcionó :):
sudo apt-get install libgl1-mesa-glx libgl1-mesa-dev
fuente
En Ubuntu 12.04 64-bit, GNOME 3.4, primero me referí a http://developer.android.com/sdk/installing/index.html e instalé ia32-lib, que generará / usr / lib / i386-linux-gnu /mesa/libGL.so.1.2.0
Luego ejecuto el siguiente comando y resolví este problema:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so
Esto es ligeramente diferente de la respuesta de gridstation.
Supongo que no es necesario instalar el controlador Mesa localmente, lo que puede causar problemas con sus controladores de video reales.
fuente
En Ubuntu de 64 bits,
1. Compruebe 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. Cree un enlace simbólico donde esté instalado el SDK
ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/local/android-studio/sdk/tools/lib/libGL.so
fuente
Para que funcione en Ubuntu 12.10 (Quantal Quetzal) de 64 bits, debe hacer dos cosas:
1) Tienes que inicializar LD_LIBRARY_PATH
Ejemplo:
export LD_LIBRARY_PATH=~/tests/android/adt-bundle-linux-x86_64/sdk/tools/lib
Comentarios: cambia la ruta a tu ubicación
2) Tienes que crear un enlace simbólico
a) Utilice
locate libGL
para encontrar la biblioteca correcta: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
b) Crea el enlace suave
sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so
Comentarios: use una biblioteca de 64 bits en un sistema operativo de 64 bits.
Ahora inicie el emulador Mi sistema es Optimus y he instalado Bumblebee . Puedo utilizar "Intel Open Source Technology Center" "Mesa DRI Intel (R) Ironlake Mobile" "2.1 Mesa 9.0" o "NVIDIA Corporation" "GeForce GT 330M / PCIe / SSE2" "3.3.0 NVIDIA 304.43".
a) Intel
/home/rudy/tests/android/adt-bundle-linux-x86_64/sdk//tools/emulator64-arm -avd avd_42 -scale 0.46 -gpu on -verbose
b) Nvidia
optirun /home/rudy/tests/android/adt-bundle-linux-x86_64/sdk//tools/emulator64-arm -avd avd_42 -scale 0.46 -gpu on -verbose
Comentarios:
verbose
es el parámetro a utilizar para mostrar más diagnósticosoptirun
es el comando para hacer uso de Nvidia en Bumblebee. Si no tienes Bumblebee, ¡no lo uses!avd
es un dispositivo virtualgpu on
para hacer uso de la tarjeta gráficafuente
OSError: libGL.so: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio
Puede aparecer en los sistemas Linux cuando intenta iniciar VNL por primera vez. Para solucionarlo, cree (como administrador) un nuevo enlace en
/usr/lib
:sudo ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so
Si tiene un Linux de 64 bits, use
/usr/lib64 instead
.Primero verifique que realmente tiene
libGL.so.1.2
en/usr/lib
o/usr/lib64
; podría ser llamadolibGL.so.1
o algo más en su lugar, o ubicado en otro directorio, dependiendo de los controladores de video.Puede utilizar localizar
libGL
para encontrar el archivo correcto al que enlazar.fuente
Tuve el mismo problema. Pero en mi caso lo resolví de otra manera (creo que mejor).
En mi situación (Lubuntu 13.10), fue suficiente simplemente instalar también la biblioteca a
libgl1-mesa-dev
través del administrador de paquetes Synaptic (lalibgl1-mesa-dri
biblioteca ya estaba instalada por defecto cuando se configuró la distribución de Lubuntuu).Eso resuelve toda la molestia de colocar enlaces de un archivo a otro y también evita la contaminación de su sistema:
Si utiliza el "mecanismo del sistema", todo estará listo para usted. Y hecho correctamente. Es por eso que esas herramientas están ahí en primer lugar.
Mejores rgds,
fuente
De manera similar a user1289608, pude hacer un enlace simbólico desde una instalación existente de Mesa:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so
fuente
Estoy usando Ubuntu 12.04 de 64 bits. Vincular
/usr/lib64/libGLC.so.0
a/usr/lib64/libGL.so
parece resolver el problema.EDITAR: detiene los mensajes de error, pero el emulador todavía es lento para mí.
fuente
Esto funcionó para mí:
Reinicie el adb desde el DDMS:
En Eclipse: Ventana> Abrir perspectiva ...> Otro> DDMS. Seleccione el emulador en el panel del lado izquierdo y seleccione "Reiniciar adb"
También puede reiniciar el servidor adb desde la ventana del terminal.
android-sdk-linux/platform-tools/adb kill-server android-sdk-linux/platform-tools/adb start-server
fuente
Encontré la carpeta para libGL con el comando "localizar"
Resultó estar en / usr / lib / i386-linux-gnu /
fuente
Para mi instalación de Debian 7 'Wheezy' utilicé el siguiente comando:
ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 opt/android/tools/lib/libGL.so
fuente
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
¡Eso es!
fuente
Tuve este problema porque había marcado "Usar GPU de host" al crear mi AVD. Lo probé con esa opción sin marcar y pude iniciar con éxito el emulador. Esto es aceptable para mis propósitos de prueba, pero si usar la GPU del host es importante, probablemente querrá probar algunas de las otras soluciones aquí.
fuente
Yo tuve el mismo problema. La reinstalación del controlador de Nvidia solucionó la falla de segmentación por mí.
fuente
Resolví este problema reinstalando libgl1, tanto las bibliotecas de 64 como de 32 bits:
$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-glx:i386
Antecedentes: anteriormente cambié del controlador radeon gratuito a fglrx. Supongo que esto de alguna manera arruinó mi libgl1, porque fglrx viene con su propia versión.
Además, creo que las otras soluciones proporcionadas aquí son posiblemente peligrosas, porque es incorrecto vincular bibliotecas compartidas de 32 bits en el directorio (64 bits) / lib /.
fuente
Compruebe si tiene
libgl1-mesa-*
paquetes instalados. Si es así, instale ellibgl1-mesa-dev
paquete para obtener los objetos compartidos sin versión .No debería tener que hacer esto, es un error del equipo de Android. Dales un respiro, solo son desarrolladores de Java.
fuente