Risoluzione dei problemi dell'emulatore Android

In questo articolo vengono descritti i problemi e i messaggi di avviso più comuni che si verificano durante la configurazione e l'esecuzione dell'emulatore Android. Descrive inoltre le soluzioni per la risoluzione di questi errori e vari suggerimenti per la risoluzione dei problemi che consentono di diagnosticare i problemi dell'emulatore. Per altre informazioni, vedere Risolvere i problemi noti relativi all'emulatore Android in developer.android.com.

Problemi di distribuzione in Windows

Alcuni messaggi di errore possono essere visualizzati dall'emulatore quando si distribuisce l'app. Gli errori e le soluzioni più comuni sono illustrati di seguito.

Errori di distribuzione

Se viene visualizzato un errore per segnalare l'esito negativo dell'installazione dell'APK nell'emulatore o l'impossibilità di eseguire Android Debug Bridge (adb), verificare che Android SDK possa connettersi all'emulatore. Per verificare la connettività dell'emulatore, procedere come segue:

  1. Avviare l'emulatore dal Gestione dispositivi Android (selezionare il dispositivo virtuale e selezionare Avvia).

  2. Aprire un prompt dei comandi e passare alla cartella in cui è installato adb. Se Android SDK è installato nel percorso predefinito, adb si trova in C:\Programmi (x86)\Android\android-sdk\platform-tools\adb.exe; in caso contrario, modificare questo percorso per il percorso di Android SDK nel computer.

  3. Digitare il comando seguente:

    adb devices
    
  4. Se l'emulatore è accessibile da Android SDK, l'emulatore verrà visualizzato nell'elenco dei dispositivi collegati. Ad esempio:

    List of devices attached
    emulator-5554   device
    
  5. Se l'emulatore non viene visualizzato in questo elenco, avviare Android SDK Manager, applicare tutti gli aggiornamenti, quindi provare di nuovo ad avviare l'emulatore.

Errore di accesso MMIO

Se viene visualizzato il messaggio An MMIO access error has occurred (Si è verificato un errore di accesso MMIO), riavviare l'emulatore.

Google Play Services mancante

Se il dispositivo Android emulato non ha Google Play Services o Google Play Store installato, probabilmente hai creato un dispositivo virtuale che esclude questi pacchetti. Quando si crea un dispositivo virtuale, assicurarsi di selezionare una o entrambe le opzioni seguenti:

  • API Google: include Google Play Services nel dispositivo virtuale.
  • Google Play Store include Google Play Store nel dispositivo virtuale.

Ad esempio, questo dispositivo virtuale includerà Google Play Services e Google Play Store:

Android Device Manager with Google Play Services and Play Store enabled for .NET MAUI.

Nota

Le immagini Google Play Store sono disponibili solo per alcuni tipi di dispositivi di base, ad esempio Pixel, Pixel 2, Nexus 5 e Nexus 5X.

Problemi di prestazioni

I problemi relativi alle prestazioni sono in genere riconducibili ai problemi seguenti:

  • L'emulatore è in esecuzione senza accelerazione hardware.
  • Il dispositivo virtuale in esecuzione nell'emulatore usando un'immagine basata su Arm.

Le sezioni seguenti illustrano questi scenari in modo più dettagliato.

L'accelerazione hardware non è abilitata

Quando si avvia un dispositivo virtuale e non è abilitata l'accelerazione hardware, il Gestione dispositivi visualizza una finestra di dialogo di errore simile all'immagine seguente:

Android device manager warning about Hyper-V not enabled on .NET MAUI.

Per correggere questo errore, seguire la procedura di risoluzione dei problemi nella sezione Problemi di accelerazione hardware.

Problemi di accelerazione hardware

Quando si usa l'accelerazione hardware, è possibile che si verifichino problemi di configurazione o conflitti con altri software nel computer. Il primo passaggio per la risoluzione dei problemi consiste nel verificare che l'accelerazione hardware sia abilitata. È possibile usare l'SDK di Android per verificare questa impostazione. Aprire un prompt dei comandi e immettere il comando seguente:

"C:\Program Files (x86)\Android\android-sdk\emulator\emulator-check.exe" accel

Questo comando presuppone che Android SDK sia installato nel percorso predefinito C:\Programmi (x86)\Android\android-sdk. Se Android SDK è installato altrove, modificare il comando precedente nel percorso corretto.

Suggerimento

Assicurarsi che l'emulatore Android sia aggiornato. Da Visual Studio premere Strumenti>Android>SDK Manager. Selezionare la scheda Strumenti e verificare se la voce emulatore Android include un aggiornamento disponibile.

Impostazioni del BIOS non corrette

Se il BIOS non è stato configurato correttamente per supportare l'accelerazione hardware, verrà visualizzato un messaggio simile all'esempio seguente quando si esegue il comando emulator-check.exe accel :

VT feature disabled in BIOS/UEFI

Per risolvere questo problema, eseguire il riavvio del computer in modalità BIOS e abilitare le opzioni seguenti:

  • Tecnologia di virtualizzazione (potrebbe avere un'etichetta diversa a seconda del produttore della scheda madre).
  • Protezione esecuzione programmi basata su hardware.

Se si verificano ancora problemi a causa di problemi relativi a Hyper-V, vedere la sezione seguente.

Problemi di Hyper-V

In alcuni casi, l'abilitazione di Hyper-V e della piattaforma Windows Hypervisor nella finestra di dialogo Attivazione o disattivazione delle funzionalità Windows potrebbe non abilitare correttamente Hyper-V. Per verificare che Hyper-V sia abilitato, procedere come segue:

  1. Immettere PowerShell nella casella di ricerca di Windows.

  2. Fare clic con il pulsante destro del mouse su Windows PowerShell nei risultati di ricerca e selezionare Esegui come amministratore.

  3. Nella console di PowerShell eseguire il comando seguente:

    Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
    

    Se Hyper-V non è abilitato, verrà visualizzato un messaggio simile all'esempio seguente per indicare che lo stato di Hyper-V è Disabilitato:

    FeatureName      : Microsoft-Hyper-V-All
    DisplayName      : Hyper-V
    Description      : Provides services and management tools for creating and running virtual machines and their resources.
    RestartRequired  : Possible
    State            : Disabled
    CustomProperties :
    
  4. Nella console di PowerShell eseguire il comando seguente:

    Get-WindowsOptionalFeature -FeatureName HypervisorPlatform -Online
    

    Se l'hypervisor non è abilitato, verrà visualizzato un messaggio simile all'esempio seguente per indicare che lo stato di HypervisorPlatform è Disabilitato:

    FeatureName      : HypervisorPlatform
    DisplayName      : Windows Hypervisor Platform
    Description      : Enables virtualization software to run on the Windows hypervisor
    RestartRequired  : Possible
    State            : Disabled
    CustomProperties :
    

Se Hyper-V o HypervisorPlatform non sono abilitati, usare i comandi di PowerShell seguenti per abilitarli:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -All

Dopo aver completato questi comandi, riavviare il sistema.

Per altre informazioni sull'abilitazione di Hyper-V (incluse le tecniche per abilitare Hyper-V mediante lo strumento Gestione e manutenzione immagini distribuzione), vedere Installare Hyper-V.

Altri suggerimenti per la risoluzione dei problemi

I suggerimenti seguenti sono spesso utili nella diagnosi dei problemi dell'emulatore Android.

Avvio dell'emulatore dalla riga di comando

Se l'emulatore non è già in esecuzione, è possibile avviarlo dalla riga di comando (anziché dall'interno di Visual Studio) per visualizzarne l'output. In genere, le immagini AVD dell'emulatore Android vengono archiviate nel percorso seguente: %userprofile%\.android\avd.

È possibile avviare l'emulatore con un'immagine AVD da questo percorso, passando il nome della cartella del dispositivo virtuale Android. Ad esempio, questo comando avvia un dispositivo virtuale Android denominato Pixel_API_27:

"C:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe" -partition-size 2000 -no-boot-anim -verbose -feature WindowsHypervisorPlatform -avd pixel_5_-_api_30 -prop monodroid.avdname=pixel_5_-_api_30

Questo comando presuppone che Android SDK sia installato nel percorso predefinito C:\Programmi (x86)\Android\android-sdk. Se Android SDK è installato altrove, modificare il comando precedente nel percorso corretto.

Visualizzazione dei log di Device Manager

Spesso è possibile diagnosticare problemi dell'emulatore visualizzando i log di Device Manager. Questi log vengono scritti nel percorso seguente: %userprofile%\AppData\Local\Xamarin\Logs\16.0.

È possibile visualizzare ogni file DeviceManager.log usando un editor di testo.