Condividi tramite


Suggerimenti per la risoluzione dei problemi relativi all'emulatore di Surface Duo

Visitare il sito Web della community tecnica di Surface Duo per porre domande o discutere degli eventuali problemi riscontrati con l'SDK o l'emulatore di Surface Duo.

Di seguito sono riportati alcuni problemi comuni con la relativa soluzione.

L'emulatore Android 12L non viene avviato

L'emulatore Surface Duo Android 12L più recente richiede che l'emulatore Android negli strumenti SDK sia la versione 31.3.12 o successiva (o 32.1.5 o successiva nel canale canary).

Controllare i prerequisiti, scaricare e installare i passaggi per istruzioni dettagliate su come aggiornare l'emulatore negli strumenti SDK.

L'emulatore Android 11 non viene avviato

Nell'output del terminale potrebbe essere visualizzato l'errore seguente:

WARNING | Failed to process .ini file Surface_Duo_2_API_32.avd/config.ini for reading.
ERROR   | bad config: virtual device file has no valid path.rel entry nor path entry

Questo errore indica una mancata corrispondenza della configurazione tra l'emulatore di Surface Duo e l'emulatore negli strumenti SDK. In Android Studio si passa alla scheda Strumenti SDK >> SDK Sdk per visualizzare la versione corrente (e se sono disponibili aggiornamenti). Se hai la versione 31.3.12 o successiva (o 32.1.5 o successiva nel canale canary), dovrai aggiornare un file INI per ripristinare la compatibilità tra l'emulatore Android 11 di Surface Duo e la versione di Android SDK:

  1. Passare al percorso .. \SurfaceDuoEmulator_<version>\artifacts\.android\avd\
  2. Modificare il file Surface_Duo_2_API_32.ini,
  3. Modificare il parametro path.rel in Surface_Duo_2_API_32.avd (per gli emulatori meno recenti, è stato storicamente impostato su avd\Surface_Duo_2_API_32.avd)
  4. Salvare e ripetere l'avvio dell'emulatore.

L'emulatore Android 11 non termina l'avvio

Se l'emulatore di Surface Duo si blocca mostrando una schermata nera durante l'avvio, questo può indicare che l'emulatore ha problemi durante il caricamento dei dati o dello stato da un'esecuzione precedente. Per risolvere questo problema, chiudere l'emulatore e riavviarlo usando uno script di cancellazione dati per avviare l'emulatore. Gli script si trovano nel percorso di installazione dell'immagine dell'emulatore di Surface Duo 2.

Avviso

L'avvio dell'emulatore tramite lo script run_wipe eliminerà tutti i dati e le app creati o installati nell'emulatore.

Se si riconosce e si accetta di cancellare tutti i dati utente, usarli ./run_wipe_SurfaceDuo2.bat in Windows o ./run_wipe_SurfaceDuo2.sh in macOS e Linux.

Una soluzione alternativa consiste nell'installare il nuovo emulatore in un percorso di file diverso rispetto a un emulatore Android di Surface Duo installato in precedenza. È possibile scegliere il percorso di installazione come parte del processo di installazione.

L'emulatore di Surface Duo non viene visualizzato nell'elenco dei dispositivi in Android Studio o Visual Studio

La versione corrente dell'emulatore di Surface Duo non può essere avviata dall'IDE. Per prima cosa avviare manualmente l'emulatore e, una volta eseguito, l'emulatore verrà visualizzato nell'elenco per la distribuzione e il debug:

  • Windows: scegliere da Start Surface Duo Emulator (Avvia > emulatore Surface Duo).
  • Mac: avviare dalla riga di comando usando ./run_SurfaceDuo2.sh (o ./run_vs_SurfaceDuo2.sh per Visual Studio per Mac).

Dopo aver avviato l'emulatore di Surface Duo, l'emulatore dovrebbe essere visualizzato nell'elenco dei dispositivi come dispositivo virtuale.

L'emulatore surface Duo non viene visualizzato in Android Virtual Device (AVD) Manager

La versione corrente dell'emulatore di Surface Duo non può essere gestita in AVD Manager. Al contrario, deve essere installato dalla pagina di download e avviato manualmente:

  • Windows: scegliere tra Start > Surface Duo Emulator o le icone del desktop, se disponibili.
  • Mac: avviare dalla riga di comando usando ./run_SurfaceDuo2.sh (o ./run_vs_SurfaceDuo2.sh per Visual Studio per Mac).

Le app non si aprono su entrambe le schermate

Per impostazione predefinita, le applicazioni verranno aperte solo su una singola schermata. L'utente può quindi scegliere di estenderla su entrambe le schermate trascinando l'handle nella parte inferiore della finestra dell'app:

Tre passaggi per estendere un'applicazione su entrambi gli schermi

I clienti possono acconsentire esplicitamente all'apertura di app in entrambe le schermate per impostazione predefinita in Impostazioni. Per estendere automaticamente le app, passare a Funzionalità > di Surface Duo Estende automaticamente le app e attivare l'opzione. Dopo aver abilitato la funzionalità, le singole app possono essere impostate sull'intervallo automatico dall'elenco. Le app verranno aperte solo su entrambe le schermate se le schermate sono vuote, altrimenti l'app verrà aperta solo sullo schermo in cui è stata attivata.

App Impostazioni che mostra l'interruttore Span Apps Automatically (Attiva/Disattiva automaticamente)

Questa funzionalità è disponibile in Android 11 e versioni successive.

I contenuti non ruotano con l'emulatore

Verificare che la rotazione automatica sia abilitata nel pannello delle notifiche o in Impostazioni > Visualizza > schermo ruota automaticamente.

Come eseguire il ripristino delle impostazioni predefinite dell'emulatore di Surface Duo

Nella cartella di installazione sono presenti file batch con cancellazione nel nome file. Quando si avvia l'emulatore con uno degli script, l'emulatore verrà effettivamente "ripristino delle impostazioni predefinite".

  • Windows: nella cartella artifacts all'interno della cartella di installazione, è possibile eseguire direttamente run_wipe_SurfaceDuo2.bat (o run_vs_wipe_SurfaceDuo2.bat per Visual Studio) per ripristinare lo stato originale dell'immagine dell'emulatore Surface Duo.
  • Mac: in una finestra del terminale passare alla cartella in cui sono stati copiati i file dell'emulatore. Digitare quindi ./run_wipe_SurfaceDuo2.sh (o ./run_vs_wipe_SurfaceDuo2.sh per Visual Studio per Mac) per ripristinare lo stato originale dell'immagine dell'emulatore Surface Duo.

Questi file vengono installati con la versione 2020.1014.2 dell'emulatore, rilasciata a metà ottobre 2020.

Se si usa una versione precedente e non è possibile eseguire subito l'aggiornamento

Se si dispone di una versione precedente, è necessario scaricare la versione più recente oppure creare manualmente un file di script. Iniziare copiando il file esistente run_clean (o run_vs_clean) in run_wipe (o run_vs_wipe) e modificarlo come illustrato di seguito:

@echo off
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.\
"%DIRNAME%\run.bat" -wipe-data

o per i file della shell in macOS e Linux:

#!/bin/sh
./run.sh -wipe-data

Il file batch/script aggiornato deve trovarsi nella stessa directory dei file batch/script esistenti usati per avviare l'emulatore. Se si modifica la versione di Visual Studio (con _vs nel nome file) assicurarsi che la riga finale faccia riferimento a run_vs.bat o run_vs.sh.

L'emulatore di Surface Duo non viene avviato dopo un'interruzione

Quando l'emulatore viene interrotto durante il salvataggio di uno snapshot, all'avvio successivo tenterà di eseguire l'avvio da uno stato di snapshot danneggiato. In alternativa, a volte si verifica un problema imprevisto durante l'esecuzione dell'emulatore e tenta di avviarlo genera l'errore. "emulator: ERROR: bad workspace: cannot find prebuilt kernel in: ../bin/prebuilts/qemu-kernel/x86_64/kernel-qemu"

In questo caso, eseguire un ripristino delle impostazioni predefinite come descritto in precedenza per risolvere il problema e avviare di nuovo l'emulatore.