Android buggy de estudio después de la actualización a 16.10

28

Recientemente actualicé desde 16.04 LTS donde mi estudio de Android funcionaba bien hasta 16.10, pero al tratar de ejecutar mis emuladores de avd, este es el registro de errores que recibo en su lugar

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  155 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  55
  Current serial number in output stream:  54
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  155 (GLX)
  Minor opcode of failed r
    
pregunta King Benx 02.01.2017 - 12:37

7 respuestas

48

En las actualizaciones recientes de android studio, google usa un libstdc++ que es incompatible con el controlador intel instalado en el sistema

Primero tiene que instalar los siguientes paquetes si no hay en el sistema lib64stdc++6 y mesa-utils

sudo apt-get install lib64stdc++6 mesa-utils

Luego, enlaza las bibliotecas a la ruta de las herramientas sdk de Android

## For the /Sdk/tools path

cd ~/Android/Sdk/tools/lib64/libstdc++
# making a copy of the file
sudo mv libstdc++.so.6 libstdc++.so.6.og
# symlink
sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/tools/lib64/libstdc++

## For the /Sdk/emulator path

cd ~/Android/Sdk/emulator/lib64/libstdc++
# making a copy of the file
sudo mv libstdc++.so.6 libstdc++.so.6.og 
# symlink
sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++
    
respondido por el Arduino_Sentinel 02.01.2017 - 13:40
41

También tuve este problema en Ubuntu 17.04 y esto es lo que hice.

Edite su .profile con su editor de texto favorito

atom ~/.profile

Añadir esto al final del archivo

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

Fuente: variable de entorno SDK de Android

    
respondido por el jasperagrante 13.07.2017 - 05:09
18

Ejecutar emulador desde la terminal

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME
    
respondido por el katenzo 10.05.2017 - 07:33
4

Otra solución simple es cambiar el nombre de libstdc ++ en la carpeta del emulador en el directorio sdk de Android. Volverá a las libs del sistema (necesita ser instalado). Eso 'funcionó' para mí en Ubuntu 17.10.

    
respondido por el Vincent Gerris 24.12.2017 - 13:07
2

Actualiza el emulador.

Tools -> SDK Manager -> SDK Tools -> Android Emulator

Este es un error que se está corrigiendo en 27.2.9.

  

La versión de Linux del emulador de Android ahora se crea utilizando un moderno   Clang C ++ toolchain. Este cambio corrige el problema del emulador   no se puede iniciar debido a errores libGL y libstdc ++.

FYI: BTW crear enlaces simbólicos manualmente no es una buena idea. Establecer ANDROID_EMULATOR_USE_SYSTEM_LIBS es un mejor enfoque. Sin embargo, eso tampoco es necesario cuando podrías simplemente actualizar el emulador.

    
respondido por el Gayan Weerakutti 23.08.2018 - 17:30
1

Cambié la aceleración de gráficos de auto / hardware a software. Los controladores que causan este problema solo son necesarios para usar hardware real para la aceleración de gráficos. A menos que trabajes en un juego u otro software intensivo en gráficos, realmente no necesitas esto. Esto tiene que hacerse en cada anuncio, pero permanece establecido una vez hecho.

    
respondido por el wheredidthatnamecomefrom 30.11.2017 - 16:00
-1

Este enlace ayuda. Modifiqué la ubicación de libstdc ++, por lo que basé en mi instalación de Ubuntu 17.10. La ubicación del archivo libstdc ++. So era diferente. Busque en su computadora libstdc ++. Entonces

Ubuntu 17.10 y Android Studio 3.1

cd /opt/android-sdk/emulator/lib64/libstdc++
mv libstdc++.so.6{,.bak}
mv libstdc++.so.6.0.19{,.bak}
ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so 
    
respondido por el Scott 30.03.2018 - 02:52

Lea otras preguntas en las etiquetas