View a markdown version of this page

Risoluzione dei problemi relativi ai test delle applicazioni Android in AWS Device Farm - AWS Device Farm

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi ai test delle applicazioni Android in AWS Device Farm

Il seguente argomento elenca i messaggi di errore che si verificano durante il caricamento dei test di applicazioni Android e consiglia soluzioni alternative per risolvere ogni errore.

ANDROID_APP_UNZIP_FAILED

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

avvertimento

Impossibile aprire l'applicazione. Verificare che il file sia valido e riprovare.

Verificare che sia possibile decomprimere il pacchetto dell'applicazione senza errori. Nel seguente esempio, il nome del pacchetto è app-debug.apk.

  1. Copiare il pacchetto di test nella directory di lavoro, quindi eseguire il comando seguente:

    $ unzip app-debug.apk
  2. Dopo aver decompresso il pacchetto, è possibile trovare la struttura ad albero della directory di lavoro eseguendo il seguente comando:

    $ tree .

    Un pacchetto di un'applicazione Android valido dovrebbe produrre un output come il seguente:

    . |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- assets (directory) |-- res (directory) `-- META-INF (directory)

    Per ulteriori informazioni, consulta Test Android in AWS Device Farm.

ANDROID_APP_AAPT_DEBUG_BADGING_FAILED

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

avvertimento

Impossibile estrarre informazioni sull'applicazione. Verificare che l'applicazione sia valida eseguendo il comando aapt debug badging <path to your test package> e riprovare quando il comando non stampa più errori.

Durante il processo di convalida del caricamento, AWS Device Farm analizza le informazioni dall'output di un aapt debug badging <path to your package> comando.

Controllare che questo comando possa essere eseguito correttamente sull'applicazione Android. Nel seguente esempio, il nome del pacchetto è app-debug.apk.

  • Copiare il pacchetto dell'applicazione nella directory di lavoro, quindi eseguire il comando:

    $ aapt debug badging app-debug.apk

    Un pacchetto di un'applicazione Android valido dovrebbe produrre un output come il seguente:

    package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727' sdkVersion:'9' application-label:'ReferenceApp' application: label='ReferenceApp' icon='res/mipmap-mdpi-v4/ic_launcher.png' application-debuggable launchable-activity: name='com.amazon.aws.adf.android.referenceapp.Activities.MainActivity' label='ReferenceApp' icon='' uses-feature: name='android.hardware.bluetooth' uses-implied-feature: name='android.hardware.bluetooth' reason='requested android.permission.BLUETOOTH permission, and targetSdkVersion > 4' main supports-screens: 'small' 'normal' 'large' 'xlarge' supports-any-density: 'true' locales: '--_--' densities: '160' '213' '240' '320' '480' '640'

    Per ulteriori informazioni, consulta Test Android in AWS Device Farm.

ANDROID_APP_PACKAGE_NAME_VALUE_MISSING

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

avvertimento

Impossibile trovare il valore del nome del pacchetto nell'applicazione. Verificare che l'applicazione sia valida eseguendo il comando aapt debug badging <path to your test package> e riprovare dopo la ricerca del valore del nome del pacchetto con parola chiave "pacchetto: nome".

Durante il processo di convalida del caricamento, AWS Device Farm analizza il valore del nome del pacchetto dall'output di un comando. aapt debug badging <path to your package>

Controllare che questo comando possa essere eseguito correttamente sull'applicazione Android e che trovi con successo il valore del nome del pacchetto. Nel seguente esempio, il nome del pacchetto è app-debug.apk.

  • Copiare il pacchetto dell'applicazione nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt debug badging app-debug.apk | grep "package: name="

    Un pacchetto di un'applicazione Android valido dovrebbe produrre un output come il seguente:

    package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727'

    Per ulteriori informazioni, consulta Test Android in AWS Device Farm.

ANDROID_APP_SDK_VERSION_VALUE_MISSING

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

avvertimento

Impossibile trovare il valore della versione SDK nell'applicazione. Verificare che l'applicazione sia valida eseguendo il comando aapt debug badging <path to your test package> e riprovare dopo la ricerca del valore della versione SDK con parola chiave sdkVersion.

Durante il processo di convalida del caricamento, AWS Device Farm analizza il valore della versione SDK dall'output di un comando. aapt debug badging <path to your package>

Controllare che questo comando possa essere eseguito correttamente sull'applicazione Android e che trovi con successo il valore del nome del pacchetto. Nel seguente esempio, il nome del pacchetto è app-debug.apk.

  • Copiare il pacchetto dell'applicazione nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt debug badging app-debug.apk | grep "sdkVersion"

    Un pacchetto di un'applicazione Android valido dovrebbe produrre un output come il seguente:

    sdkVersion:'9'

    Per ulteriori informazioni, consulta Test Android in AWS Device Farm.

ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

avvertimento

Non siamo riusciti a trovare quello valido AndroidManifest.xml nella tua applicazione. Verificare che il pacchetto di test sia valido eseguendo il comando aapt dump xmltree <path to your test package> AndroidManifest.xml e riprovare quando il comando non stampa più errori.

Durante il processo di convalida del caricamento, AWS Device Farm analizza le informazioni dall'albero di analisi XML per un file XML contenuto nel pacchetto utilizzando il comando. aapt dump xmltree <path to your package> AndroidManifest.xml

Controllare che questo comando possa essere eseguito correttamente sull'applicazione Android. Nel seguente esempio, il nome del pacchetto è app-debug.apk.

  • Copiare il pacchetto dell'applicazione nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt dump xmltree app-debug.apk. AndroidManifest.xml

    Un pacchetto di un'applicazione Android valido dovrebbe produrre un output come il seguente:

    N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA")

    Per ulteriori informazioni, consulta Test Android in AWS Device Farm.

ANDROID_APP_DEVICE_ADMIN_PERMISSIONS

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

avvertimento

L'applicazione richiede autorizzazioni di amministratore del dispositivo. Verificare che le autorizzazioni non siano richieste eseguendo il comando aapt dump xmltree <path to your test package> AndroidManifest.xml e riprovare dopo aver controllato che l'output non contenga la parola chiave android.permission.BIND_DEVICE_ADMIN.

Durante il processo di convalida del caricamento, AWS Device Farm analizza le informazioni di autorizzazione dall'albero di analisi xml per un file xml contenuto nel pacchetto utilizzando il comando. aapt dump xmltree <path to your package> AndroidManifest.xml

Verificare che l'applicazione non richieda autorizzazioni di amministratore per il dispositivo. Nel seguente esempio, il nome del pacchetto è app-debug.apk.

  • Copiare il pacchetto dell'applicazione nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt dump xmltree app-debug.apk AndroidManifest.xml

    L'output dovrebbe essere come segue:

    N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazonaws.devicefarm.android.referenceapp" (Raw: "com.amazonaws.devicefarm.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0xa A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA") ……

    Se l'applicazione Android è valida, l'output non deve contenere: A: android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw: "android.permission.BIND_DEVICE_ADMIN").

    Per ulteriori informazioni, consulta Test Android in AWS Device Farm.

Alcune finestre della mia applicazione Android mostrano una schermata vuota o nera

Se state testando un'applicazione Android e notate che alcune finestre dell'applicazione appaiono con una schermata nera nella registrazione video del test effettuata da Device Farm, è possibile che l'applicazione stia utilizzando la FLAG_SECURE funzionalità di Android. Questo flag (come descritto nella documentazione ufficiale di Android) viene utilizzato per impedire che determinate finestre di un'applicazione vengano registrate da strumenti di registrazione dello schermo. Di conseguenza, la funzione di registrazione dello schermo di Device Farm (sia per l'automazione che per i test di accesso remoto) potrebbe mostrare una schermata nera al posto della finestra dell'applicazione se la finestra utilizza questo flag.

Questo flag viene spesso utilizzato dagli sviluppatori per le pagine dell'applicazione che contengono informazioni riservate, ad esempio le pagine di accesso. Se visualizzi una schermata nera al posto della schermata dell'applicazione per alcune pagine, ad esempio la pagina di accesso, collabora con i tuoi sviluppatori per ottenere una build dell'applicazione che non utilizzi questo flag per i test.

Inoltre, tieni presente che Device Farm può ancora interagire con le finestre delle applicazioni che presentano questo contrassegno. Quindi, se la pagina di accesso dell'applicazione appare come una schermata nera, potresti comunque essere in grado di inserire le tue credenziali per accedere all'applicazione (e quindi visualizzare le pagine non bloccate dal FLAG_SECURE flag).