android - tutorial - some users have experienced emulator stability




Android Studio, de repente, teve problema de driver GPU ao executar o emulador (6)

Eu tenho um laptop que eu uso principalmente para o desenvolvimento android no estúdio android, hoje, de repente, tenho essa mensagem de erro (ou uma versão desatualizada) quando eu corri meu emulador

Your GPU driver information:

GPU #1
Make: 8086
Model: Intel(R) HD Graphics Family
Device ID: 0a16
Driver version: 10.18.10.3945
GPU #2
Make: 10de
Model: NVIDIA GeForce 820M
Device ID: 1140
Driver version: 22.21.13.8476 

Some users have experienced emulator stability issues with this driver version. As a result, were selecting a compatibility renderer. Please check with your manufacturer to see if there is an updated driver available. 

Atualizado o driver geforce, mas não adianta, tentou atualizar o intel mas falhou, existe uma maneira de desabilitar isso? ignorar o renderizador de compatibilidade e funciona como eu costumava, o emulador é horrível agora. Alguma explicação por que isso ocorreu de repente?

Também estou usando o Windows 7 de 64 bits, se isso vai ajudar com qualquer coisa, teve uma atualização alguns dias atrás.


Como outro sugerido, vá para Configurações -> Aparência e Comportamento -> Configurações do sistema -> Atualizações. Altere "Verificações automáticas de atualizações" para "Canal beta". Atualize o emulador para a versão beta mais recente. Problema do driver deve ter ido embora. Eu tive problemas executando o fragmento com o google maps (app chrash) que foi resolvido após a atualização do emulador para o último beta.


Consegui solucionar esse problema desativando o uso da GPU para que o AVD use a aceleração de software. Não será tão rápido quanto GPU, mas pelo menos tem melhores chances de funcionar corretamente.

Eu tentei outras opções acima, mas infelizmente nenhum deles estava funcionando.

Se você quiser tentar esta opção, vá para o AVD Manager (no Android Studio: Ferramentas -> Android -> AVD Manager), edite seu dispositivo virtual e no campo Graphics, você pode definir "Software - GLES 1.1" "Hardware - GLES 2.0".

Esta não é a solução perfeita para este problema, mas pode ajudar.


Eu estou usando o Win10, mas tenho o mesmo problema. O emulador começou a travar meu aplicativo após a última atualização do emulador. No meu caso, o problema é que o emulador não roda em hardware, mesmo que eu nunca tenha tido problemas com as minhas GPUs. Além disso, a janela "Problema do driver de GPU" que aparece não marca nem mesmo QUALQUER uma das GPUs que considera o problema.

Para mim a solução que funcionou é rodar o emulador a partir do terminal, forçando-o a rodar usando gráficos de hardware (ao invés de deixar o emulador decidir em qual) usando o comando

emulator -avd avd_name -gpu mode

onde o modo é host para que ele seja executado com hardware.

Por exemplo:

Usando o terminal do Android Studio, mova para a pasta em que o emulador está localizado. O padrão no Win10 é: C: \ Usuários \ nome do usuário \ AppData \ Local \ Android \ sdk \ emulator

Encontre emulador para rodar listando os disponíveis: emulator -list-avds

Execute o emulador com a opção de host -gpu : emulator -avd avd_name -gpu host

Mais informações sobre este link


Eu fiz o mesmo que o @Api, mas fiz do Virtual Device Manager. Na janela de edição do dispositivo, na lista suspensa Gráficos, selecionei "Hardware - GLES 2.0". Eu acredito que o padrão é automático. Eu ainda recebo a janela popup do GPU errado, mas o emulador não falha mais. Está de volta à confiabilidade normal.


Para usuários do Linux, vá para o Android Folder, que no meu caso está em ~ / Android. Então prossiga para / sdk / emulator. "emulador" é um comando local. Então, você pode executar o comando como local "./emulator".

O resto é feito como o usuário "Api" declarou.

$ ./emulator -avd -avd_name -gpu mode

$ ./emulator -avd Host Nexus_5X_API_26 -gpu (#IN MY CASE)

Observação: não fiz o download do SDK, em vez disso, copiei e colei-o em / home dir. É por isso que o comando não era válido em escala global. Se você configurar o sdk avd a partir do zero, ele deve funcionar bem.


Um comment no relatório de bug referente a esse problema por um funcionário do Google está esclarecendo.

Se o seu sistema não tiver uma GPU discreta, pretendemos essa alteração para que o emulador seja executado de maneira mais confiável nos drivers da GPU Intel. Por sua conta e risco, você pode voltar a usar a GPU Intel acessando a página de configurações e alterando o renderizador OpenGL ES para "ANGLE (D3D11)", "ANGLE (D3D9)" ou "Desktop OpenGL nativo".

Parece que esta mensagem está sendo exibida para todos os sistemas que usam GPUs Intel, não apenas para sistemas que executam versões específicas de um driver gráfico.

A solution é, se possível, mudar para o uso de uma GPU externa para executar o emulador.

Se uma GPU Intel for a única GPU disponível no sistema, é possível reativar a renderização acelerada do OpenGL ES, substituindo o renderizador padrão OpenGL ES nas configurações (veja abaixo). As opções são OpenGL, ANGLE e SwiftShader. O SwiftShader é uma emulação OpenGL ES baseada em CPU, portanto, essa configuração não fornecerá um aumento de velocidade. ANGLE é emulação OpenGL baseada em Direct3d.

De acordo com o comentário, não é garantido que funcione, de fato eu sou capaz de reativar a aceleração de hardware para emuladores do Android 7, mas com a aceleração de hardware ativada, tudo que recebo é uma tela preta para emuladores do Android 8.

Abra as configurações com Ctrl-Shift-S e, dependendo da versão do emulador, vá para Settings -> General -> OpenGL ES renderer ou para Settings -> Advanced -> OpenGL ES renderer

Versões mais recentes do emulador:

Versões mais antigas do emulador:

Atualização # 1: Outro comment no relatório de bug fornece mais iluminação sobre este assunto:

Se você tiver apenas um Intel HD 4xxx executando o emulador, pretende-se que um renderizador de compatibilidade seja usado. Sinto muito, mas precisamos ser capazes de mudar para drivers de GPU da Intel com suporte melhor, especialmente ao executar altos níveis de API (mais de 25) de imagens do sistema. Intel iGPUs dessa geração (e mais antigos) têm muitos problemas com a compatibilidade com OpenGL.

Parece que os drivers Intel iGPU para Haswell (4ª geração) e mais antigos não suportam OpenGL bem o suficiente para dispositivos Android 7.1+. Então, eles estão propositadamente recorrendo à emulação de software que suporta melhor os novos emuladores do Android.

Isso corresponde à minha experiência. Usando o Intel iGPU funciona muito bem no Android 7, mas é esquisito no Android 7.1 e não funciona no Android 8.

Minha sugestão, ficar com emuladores Android 7 ao usar a aceleração de hardware para Intel Haswell e iGPUs mais antigos.

Atualização # 2: A comunicação oficial sobre este assunto foi finalmente fornecida na forma de comentários nas notas de lançamento do Emulator 26.1.3:

Quais GPUs serão alternadas para usar a renderização ANGLE ou Swiftshader são determinadas da seguinte maneira:

  • IGPUs Intel antigos têm problemas de driver nos drivers OpenGL e ANGLE D3D. Os usuários com Intel HD Graphics 3xxx e anteriores usarão o Swiftshader.
  • Alguns usuários relataram a incapacidade de usar imagens de nível 25 da API devido a um bug no qual "o Pixel Launcher continua parando". Este parece ser um problema de driver em alguns modelos Intel HD 4xxx. Então eles serão trocados para usar ANGLE automaticamente.

Para obter melhores resultados com a emulação de GPU, recomendamos usar uma GPU NVIDIA ou AMD discreta ou uma GPU Intel mais recente (Iris, HD 5xxx, HD 5xx / 6xx).





android-emulator