Android studio buggy dopo l'aggiornamento a 16.10

28

Recentemente ho aggiornato da 16.04 LTS dove il mio studio Android funzionava bene fino a 16.10 ma cercando di eseguire i miei emulatori avd, questo è il registro degli errori che torno invece

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
    
posta King Benx 02.01.2017 - 13:37

7 risposte

48

Nei recenti aggiornamenti di Android Studio, Google utilizza un libstdc++ incompatibile con il driver intel installato sul sistema

Devi prima installare i seguenti pacchetti se non ci sono sul sistema lib64stdc++6 e mesa-utils

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

Quindi collega le librerie al percorso degli strumenti sdk di 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++
    
risposta data Arduino_Sentinel 02.01.2017 - 14:40
41

Avevo anche questo problema su Ubuntu 17.04 ed ecco cosa ho fatto.

Modifica il .profile utilizzando il tuo editor di testo preferito

atom ~/.profile

Aggiungi questo alla fine del file

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

Origine: variabile ambiente SDK Android

    
risposta data jasperagrante 13.07.2017 - 07:09
18

Esegui emulatore dal terminale

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME
    
risposta data katenzo 10.05.2017 - 09:33
4

un'altra soluzione alternativa è rinominare libstdc ++ nella cartella dell'emulatore nella directory sdk di Android. Restituirà alle librerie di sistema (è necessario installarle). Questo ha funzionato per me su Ubuntu 17.10.

    
risposta data Vincent Gerris 24.12.2017 - 14:07
1

Ho acceso l'accelerazione grafica da auto / hardware a software. I driver che causano questo problema sono necessari solo per utilizzare l'hardware reale per l'accelerazione grafica. A meno che tu non stia lavorando su un gioco o su altri software ad alta intensità grafica, non hai davvero bisogno di questo. Questo deve essere fatto su ogni adv, ma rimane impostato una volta fatto.

    
risposta data wheredidthatnamecomefrom 30.11.2017 - 17:00
0

Aggiorna l'emulatore.

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

Questo è un bug che viene corretto in 27.2.9.

  

La versione Linux di Emulatore Android è ora costruita usando un moderno   Clang C ++ toolchain. Questa modifica risolve il problema dell'emulatore   mancato avvio a causa di errori libGL e libstdc ++.

FYI: la creazione manuale di collegamenti simbolici manualmente non è una buona idea. Impostare ANDROID_EMULATOR_USE_SYSTEM_LIBS è un approccio migliore. Tuttavia, non è nemmeno necessario quando puoi aggiornare l'emulatore.

    
risposta data Gayan Weerakutti 23.08.2018 - 19:30
-1

Questa link aiuto. Ho modificato la posizione di libstdc ++ in base alla mia installazione di Ubuntu 17.10. Il libstdc ++. Quindi il percorso del file era diverso. Cerca il tuo computer per libstdc ++. So

Ubuntu 17.10 e 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 
    
risposta data Scott 30.03.2018 - 04:52

Leggi altre domande sui tag