Risolvere i problemi noti relativi all'emulatore Android

In questa pagina sono elencati i problemi noti, le soluzioni alternative e i suggerimenti per la risoluzione dei problemi relativi all'emulatore Android. Se riscontri un problema non elencato qui o non riesci a utilizzare una soluzione alternativa elencata qui, segnala un bug.

Problemi generali


Google Maps non viene visualizzato nei controlli estesi dell'emulatore Android

A partire da metà maggio, le versioni precedenti alla 34.2.13 dell'emulatore Android non avranno più Google Maps funzionale nei controlli estesi. Gli emulatori meno recenti sono forniti con una versione di Chromium incompatibile con l'API JavaScript di Google Maps.

Verificare che lo spazio su disco sia sufficiente

Per evitare arresti anomali e blocchi dovuti alla mancanza di spazio libero su disco, l'emulatore controlla la presenza di spazio libero sufficiente all'avvio e non si avvia se non sono disponibili almeno 5 GB di spazio libero. Se l'emulatore non si avvia, controlla se hai sufficiente spazio libero su disco.

Software antivirus

Poiché molti pacchetti software di sicurezza e antivirus funzionano monitorando ogni operazione di lettura e scrittura, l'utilizzo di questo tipo di software può ridurre le prestazioni di strumenti come l'emulatore Android.

Molti pacchetti antivirus offrono la possibilità di aggiungere applicazioni specifiche a un elenco di applicazioni attendibili, il che consente alle applicazioni elencate di funzionare senza peggioramento delle prestazioni. Se le prestazioni non sono soddisfacenti con il salvataggio o il caricamento di istantanee AVD, potresti migliorare le prestazioni aggiungendo l'applicazione Android Emulator come applicazione attendibile nel software antivirus.

L'impatto sulle prestazioni varia a seconda dei pacchetti di software antivirus. Se hai installato un software antivirus aggiuntivo rispetto a quello incluso nel sistema operativo, puoi eseguire semplici test per determinare quale software antivirus ha un maggiore effetto sulle prestazioni delle operazioni di caricamento e salvataggio dell'emulatore.

Alcuni software antivirus potrebbero non essere compatibili con l'emulatore Android.

Se utilizzi il software Avast e hai difficoltà a eseguire l'emulatore Android, disattiva Usa virtualizzazione nidificata se disponibile e Attiva la virtualizzazione assistita dall'hardware nelle impostazioni di Risoluzione dei problemi di Avast. Inoltre, dopo aver disattivato la virtualizzazione hardware di Avast, assicurati che HAXM sia configurato di nuovo correttamente con una reinstallazione completa dell'ultima versione di HAXM da SDK Manager.

Su Windows, a volte l'AVD si blocca con HAXM e il problema può essere risolto disinstallando completamente McAfee.

Windows: RAM libera e addebito di impegno

All'avvio, l'emulatore deve inizializzare la RAM del sistema operativo ospite Android. Su Windows, l'emulatore richiede che Windows tenga in considerazione la dimensione completa della memoria ospite all'inizio, anche se durante il funzionamento effettivo, la memoria potrebbe essere impaginata on demand. L'emulatore richiede l'intera quantità di memoria guest all'avvio perché Windows è conservativo nel garantire che sia disponibile RAM fisica e file di pagina sufficienti per contenere l'intero potenziale insieme di lavoro. Questa richiesta si prepara al caso peggiore, in cui tutta la memoria dell'ospite viene toccata rapidamente senza la possibilità di scartarla o di liberare in altro modo la memoria.

A volte, quando l'emulatore chiede a Windows di tenere conto di questa dimensione completa della memoria guest, la richiesta supera il limite di commit attuale, che corrisponde al totale della RAM fisica e del file di paging disponibili. In questo caso, Windows non può garantire che il set di lavoro peggiore rientri nella RAM fisica o nel file di pagina e l'emulatore non riesce ad avviarsi.

In genere, lo spazio dell'unità disco allocato per il file di pagina più la RAM fisica è più che sufficiente per la maggior parte dei casi d'uso dell'emulatore. Tuttavia, se si verificano errori di avvio dell'emulatore a causa del superamento del limite di commit, ti consigliamo di esaminare l'attuale impegno del commit, che è visibile nella scheda Rendimento in Task Manager di Windows. Per aprire il Task Manager, premi Ctrl+Maiusc+Esc.

Per ridurre la probabilità di superare il limite di commit in vari modi:

  • Libera la RAM fisica prima di avviare l'emulatore chiudendo le applicazioni e i file inutilizzati.
  • Disattiva le utilità di gestione e compressione della memoria di terze parti. Queste utility possono causare in modo inefficiente un addebito di commit eccessivo e avvicinare il sistema al limite di commit.
  • Utilizza una dimensione gestita dal sistema per il file di paging di Windows, che può aumentare in modo più flessibile e dinamico le dimensioni del file di paging e, di conseguenza, il limite di commit, in risposta all'aumento della domanda da parte dell'emulatore e di altre applicazioni.

    Per saperne di più sugli addebiti di impegno e sul motivo per cui un'impostazione flessibile è la migliore, leggi questo articolo di Microsoft.

Il multi-touch non funziona nella finestra dello strumento

I gesti multi-touch, inclusa la panoramica con due dita, non funzionano quando l'emulatore è in esecuzione in una finestra dello strumento. Per attivare il multi-touch, avvia l'emulatore in una finestra separata.

L'emulatore degrada l'uscita audio Bluetooth

Se utilizzi cuffie Bluetooth, potresti notare che l'output audio delle cuffie Bluetooth si deteriore durante l'esecuzione dell'emulatore (problema 183139207). Questo accade perché, quando l'emulatore viene avviato, attiva il microfono delle cuffie, che passa alla modalità duplex con qualità ridotta.

Per evitare questo problema, disabilita il microfono nell'emulatore aggiungendo hw.audioInput=no al file config.ini del dispositivo virtuale Android (AVD). Per trovare il file config.ini di un file AVD, accedi alla durata di visualizzazione media in Gestione dispositivi, fai clic sul menu extra e seleziona Mostra su disco.

I dispositivi virtuali Android non riescono ad avviarsi su ChromeOS

Su ChromeOS, l'avvio dei dispositivi virtuali Android (AVD) potrebbe non riuscire perché manca la dipendenzalibnss3. Per avviare correttamente gli AVD, esegui sudo apt install libnss3 per installare manualmente la libreria libnss3.

Avvisi del sensore di inclinazione del polso su Wear OS

Su Wear OS, l'emulatore potrebbe registrare ripetutamente il seguente messaggio relativo al sensore di inclinazione del polso: the host has not provided value yet for sensorHandle=16

Gli sviluppatori possono ignorare questi avvisi.

Finestra dell'emulatore incorporato troppo piccola

Su macchine con una risoluzione inferiore, ad esempio 1024 x 768, può essere difficile leggere lo schermo dell'emulatore quando viene eseguito in una finestra dello strumento in Android Studio. Per assegnare più spazio all'emulatore, chiudi la finestra dello strumento Gestione dispositivi se è aperta. Puoi anche estrarre la finestra dell'emulatore da Android Studio. Per farlo, nella finestra dell'emulatore, fai clic su Impostazioni > Modalità di visualizzazione e seleziona Finestra anziché Agganciato alla barra delle app.

Problemi relativi alla grafica


L'emulatore Android funziona lentamente dopo un aggiornamento

Diversi fattori esterni possono causare l'avvio lento di Android Emulator dopo un aggiornamento. Per iniziare la risoluzione dei problemi, ti consigliamo di seguire questi passaggi:

  • Se hai una GPU Intel (in particolare Intel HD 4000), assicurati di aver scaricato e installato il driver grafico Intel più recente.
  • Se la tua macchina ha sia una GPU Intel sia una GPU discreta, disabilita la GPU Intel in Gestione dispositivi per assicurarti di utilizzare la GPU discreta.
  • Esegui l'emulatore utilizzando la modalità -gpu swiftshader. Per ulteriori informazioni sulla configurazione delle opzioni di accelerazione grafica sulla riga di comando, consulta Configurare l'accelerazione hardware.
  • Assicurati che il router non utilizzi indirizzi IPv6 se non hai una connessione IPv6.

Se i problemi con l'esecuzione lenta di Android Emulator persistono, segnala un bug e includi i dettagli necessari di Android Emulator per consentirci di effettuare accertamenti.

Errore: impossibile trovare vulkan-1.dll

Se l'emulatore non si avvia a causa dell'errore vulkan-1.dll cannot be found, probabilmente devi aggiornarlo. Per aggiornare l'emulatore in Android Studio, vai a Strumenti > Gestore SDK e installa la versione stabile più recente della piattaforma Android.

In alternativa, se non hai bisogno di app che utilizzano la libreria grafica Vulkan, disattiva Vulkan avviando l'emulatore dalla riga di comando con il flag -feature -Vulkan.

Impossibile creare uno snapshot

La creazione di uno snapshot dell'emulatore che include la libreria grafica Vulkan non è supportata. Per eseguire l'emulatore senza Vulkan, avvialo dalla riga di comando con il flag -feature -Vulkan. In alternativa, puoi disinstallare ed evitare di utilizzare app con Vulkan, ad esempio Chrome su API 30 o versioni successive, se vuoi utilizzare gli snapshot come parte del tuo flusso di lavoro di sviluppo.

Impossibile aprire correttamente la pagina web

A partire dal livello API 30, Chrome utilizza la libreria grafica Vulkan come backend di rendering e potrebbe avere problemi di compatibilità su alcune macchine. Se Chrome non viene visualizzato correttamente, prova ad avviare l'emulatore dalla riga di comando con il flag -feature -Vulkan.

Avviso relativo al driver della GPU: ripristino del software

Se ricevi un avviso relativo al fallimento del driver GPU, è possibile che tu stia utilizzando una GPU non supportata. Per impostazione predefinita viene utilizzato il valore automatico, che potrebbe scegliere il rendering software. Se scegli un hardware, dovresti essere in grado di forzarlo a utilizzare il rendering hardware (potrebbe comunque essere visualizzato un messaggio di avviso).

Per le immagini non del Play Store, puoi farlo in Gestore dispositivi -> 3 puntini -> modifica. Per le immagini del Play Store, devi modificare manualmente i due file di configurazione:

~/.android/nome_avd.avd/config.ini

~/.android/nome_avd.avd/hardware-qemu.ini

e cambia hw.gpu.mode in host

Tieni presente che questa operazione potrebbe ridurre la stabilità dell'emulatore. Per ulteriori dettagli, consulta il bug.

L'emulatore non si avvia su Chrome Remote Desktop per Windows

Se l'emulatore non si avvia mentre utilizzi Chrome Remote Desktop su Windows, la soluzione alternativa consigliata attualmente è usare il flag-gpu come -gpu host o -gpu swiftshader.

L'emulatore si comporta in modo errato su macOS in modalità di rendering hardware

Sui dispositivi Mac con Apple Silicon, l'emulatore utilizza la libreria MoltenVK per l'API Vulkan quando è selezionata la modalità di rendering hardware. Sebbene MoltenVK in genere offra prestazioni molto migliori, la libreria non supporta tutte le funzionalità di Vulkan. In caso di problemi di compatibilità, ad esempio errori di compilazione degli shader, glitch grafici o arresti anomali nelle app, imposta la modalità di rendering su software tramite le impostazioni AVD o utilizza l'argomento della riga di comando -gpu swiftshader.

In alternativa, puoi disattivare il supporto di Vulkan con l'argomento-feature -Vulkan per continuare a utilizzare l'accelerazione hardware nelle app GLES.

Problemi di rete


Nessuna connessione a internet: impossibile trovare l'indirizzo DNS del server

Se l'emulatore non riesce a connettersi a internet, prova ad avviare l'emulatore dalla riga di comando utilizzando l'opzione -dns-server “2001:4860:4860::8844,2001:4860:4860::8888,8.8.8.8,8.8.4.4”. Questo comando fornisce un elenco di indirizzi IP di Google Public DNS separati da virgole. Per maggiori informazioni su Google Public DNS, consulta Google Public DNS per i tuoi dispositivi.

Nessuna connessione a internet: problemi di risoluzione DNS

A volte gli indirizzi DNS nel file /etc/resolv.conf non funzionano correttamente. Puoi risolvere il problema avviando l'emulatore dalla riga di comando utilizzando l'opzione -dns-server 8.8.8.8 o -dns.server 2001:4860:4860::8888 per connetterti tramite una rete solo IPv6.

Problemi precedenti (su emulatori deprecati o vecchi sistemi)


Impossibile avviare l'AVD

Un AVD potrebbe non essere avviato se esiste un report di arresto anomalo per un emulatore più recente (issue #281725854). Questo problema si verifica solo per gli utenti che eseguono l'aggiornamento dalla versione canary 33.x alla 32.1.13, hanno riscontrato un arresto anomalo l'ultima volta che hanno eseguito la versione 33.x e non hanno più rebooted la loro AVD, quindi la directory %TEMP% o /tmp è ancora attiva. Se riscontri questo problema, prova a cancellare la directory %TEMP% (/tmp su Linux o macOS).

Windows: l'emulatore non si avvia se il nome della durata di visualizzazione media è Unicode

Su Windows, quando Gestione dispositivi crea un dispositivo virtuale Android, per impostazione predefinita, la durata di visualizzazione media viene creata alle ore C:\Users\<name>\.android\avd. Tuttavia, se il nome dell'AVD (<name>) contiene Unicode, l'emulatore non può avviare correttamente l'AVD utilizzando questa posizione predefinita.

Questo problema è stato risolto nell'emulatore 31.3.6 e versioni successive. Per risolvere il problema, aggiorna l'emulatore selezionando Strumenti > SDK Manager.

In alternativa, per risolvere il problema, imposta la variabile di ambiente ANDROID_SDK_HOME su una directory personalizzata prima di creare un AVD. Ad esempio, crea la directory C:\Android\home e imposta ANDROID_SDK_HOME su questa directory appena creata. Per scoprire di più, consulta la sezione VARIABILI DI AMBIENTE.

Gli hypervisor non possono emulare determinate funzionalità della CPU richieste dai sistemi Android x86

In genere, gli hypervisor non possono emulare determinate funzionalità della CPU, come le Streaming SIMD Extensions (SSE), richieste dai sistemi Android x86.