O emulador do Android não está funcionando no Linux devido a libGL

1

Eu usei algumas distribuições Linux (Ubuntu, Deepin, etc.) e estou usando o KDE Neon User Edition no momento. Quando eu quero usar o emulador do Android, não posso. Porque o emulador do Android não é executado em todas as distribuições Linux para mim. Info : meus resultados:

user@username-PC:~/Android/Sdk/tools$ ./emulator -accel-check
accel:
0
KVM (version 12) is installed and usable.
accel
user@username-PC:~/Android/Sdk/tools$ kvm-ok 
INFO: /dev/kvm exists
KVM acceleration can be used
user@username-PC:~/Android/Sdk/tools$ egrep -c '(vmx|svm)' /proc/cpuinfo
4

Quando inicio o emulador do Android, recebo este erro:

emulator: WARNING: Not all modern X86 virtualization features supported, which introduces problems with slowdown when running Android on multicore vCPUs. Setting AVD to run with 1 vCPU core only.
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
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:  58
  Current serial number in output stream:  59

Quando eu defino a configuração da CPU de vários núcleos como 1:

libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
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:  58
  Current serial number in output stream:  59

Quando eu altero a configuração dos gráficos como Software - GLES 2.0 (padrão: Automatic), recebo o seguinte:

    
por İbrahim 28.01.2018 / 17:43

1 resposta

0

Usando o sistema libstdc ++ resolve o problema

Por exemplo:

cd ~/Android/Sdk/tools
./emulator -avd Nexus_5X_API_27 -use-system-libs

Se funcionar corretamente, defina a seguinte variável em ~/.bashrc :

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

Faça login novamente ou source ~.bashrc . Você pode então omitir a opção -use-system-libs :

./emulator -avd Nexus_5X_API_27

Este método não funciona quando o emulador é chamado a partir do Android Studio. Aqui está uma solução alternativa

Crie um script de shell android-studio.sh em um diretório disponível em seu PATH . Por exemplo, ~/bin com o seguinte conteúdo:

#!/bin/bash
export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
~/Programs/android-studio/bin/studio.sh %f

e, em seguida, atualize o comando do iniciador em

~/.local/share/applications/jetbrains-studio.desktop

para apontar para ~/bin/android-studio.sh .

    
por Vimalkumar Velayudhan 27.03.2018 / 04:21