Solução de problemas em testes de aplicativos Android no AWS Device Farm - AWS Device Farm

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas em testes de aplicativos Android no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes de aplicativos Android e recomenda soluções para resolver cada erro.

nota

As instruções a seguir baseiam-se no Linux x86_64 e Mac.

ANDROID_APP_UNZIP_FAILED

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Atenção

Não conseguimos abrir seu aplicativo. Verifique se o arquivo é válido e tente novamente.

Verifique se você consegue descompactar o pacote de aplicativos sem erros. No exemplo a seguir, o nome do pacote é app-debug.apk.

  1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

    $ unzip app-debug.apk
  2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretório de trabalho executando o seguinte comando:

    $ tree .

    Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

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

    Para obter mais informações, consulte Testes de Android no AWS Device Farm.

ANDROID_APP_AAPT_DEBUG_BADGING_FAILED

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Atenção

Não foi possível extrair informações sobre seu aplicativo. Para verificar se o aplicativo é válido, execute o comando aapt debug badging <path to your test package> e tente novamente se o comando não imprimir nenhum erro.

Durante o processo de validação do upload, AWS o Device Farm analisa as informações da saída de um aapt debug badging <path to your package> comando.

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android. No exemplo a seguir, o nome do pacote é app-debug.apk.

  • Copie o pacote do aplicativo para seu diretório de trabalho e, em seguida, execute o comando:

    $ aapt debug badging app-debug.apk

    Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

    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'

    Para obter mais informações, consulte Testes de Android no AWS Device Farm.

ANDROID_APP_PACKAGE_NAME_VALUE_MISSING

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Atenção

Não foi possível encontrar o valor do nome do pacote em seu aplicativo. Para verificar se o aplicativo é válido, execute o comando aapt debug badging <path to your test package> e tente novamente depois de encontrar o valor no nome do pacote subjacente à palavra-chave "package: name".

Durante o processo de validação do upload, AWS o Device Farm analisa o valor do nome do pacote a partir da saída de um aapt debug badging <path to your package> comando.

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android e encontrar o valor do nome do pacote. No exemplo a seguir, o nome do pacote é app-debug.apk.

  • Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

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

    Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

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

    Para obter mais informações, consulte Testes de Android no AWS Device Farm.

ANDROID_APP_SDK_VERSION_VALUE_MISSING

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Atenção

Não foi possível encontrar o valor da SDK versão em seu aplicativo. Verifique se o aplicativo é válido executando o comando aapt debug badging <path to your test package> e tente novamente depois de encontrar o valor da SDK versão por trás da palavra-chavesdkVersion.

Durante o processo de validação do upload, AWS o Device Farm analisa o valor da SDK versão a partir da saída de um aapt debug badging <path to your package> comando.

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android e encontrar o valor do nome do pacote. No exemplo a seguir, o nome do pacote é app-debug.apk.

  • Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

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

    Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

    sdkVersion:'9'

    Para obter mais informações, consulte Testes de Android no AWS Device Farm.

ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Atenção

Não foi possível encontrar o AndroidManifest arquivo.xml válido em seu aplicativo. Para verificar se o pacote de testes é válido, execute o comando aapt dump xmltree <path to your test package> AndroidManifest.xml e tente novamente se o comando não imprimir nenhum erro.

Durante o processo de validação do upload, o AWS Device Farm XML analisa as informações da árvore de análise de um XML arquivo contido no pacote usando o comando. aapt dump xmltree <path to your package> AndroidManifest.xml

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android. No exemplo a seguir, o nome do pacote é app-debug.apk.

  • Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

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

    Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

    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")

    Para obter mais informações, consulte Testes de Android no AWS Device Farm.

ANDROID_APP_DEVICE_ADMIN_PERMISSIONS

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Atenção

Descobrimos que seu aplicativo requer permissões de administrador do dispositivo. Verifique se as permissões não são necessárias executando o comando aapt dump xmltree <path to your test package> AndroidManifest.xml e tente novamente assim que confirmar que a saída não contém a palavra-chave android.permission.BIND_DEVICE_ADMIN.

Durante o processo de validação do upload, o AWS Device Farm analisa as informações de permissão da árvore de análise xml de um arquivo xml contido no pacote usando o comando. aapt dump xmltree <path to your package> AndroidManifest.xml

Descobrimos que seu aplicativo não requer permissão de administrador do dispositivo. No exemplo a seguir, o nome do pacote é app-debug.apk.

  • Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

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

    Você provavelmente chegará a um resultado como o seguinte:

    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 o aplicativo Android for válido, a saída não deverá conter o seguinte: A: android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw: "android.permission.BIND_DEVICE_ADMIN").

    Para obter mais informações, consulte Testes de Android no AWS Device Farm.

Certas janelas do meu aplicativo Android mostram uma tela em branco ou preta

Se você estiver testando um aplicativo Android e perceber que determinadas janelas do aplicativo aparecem com uma tela preta na gravação de vídeo do teste do Device Farm, seu aplicativo pode estar usando o recurso FLAG_SECURE do Android. Esse sinalizador (conforme descrito na documentação oficial do Android) é usado para impedir que determinadas janelas de uma aplicação sejam gravadas por ferramentas de gravação de tela. Como resultado, o recurso de gravação de tela do Device Farm (para testes de automação e acesso remoto) pode mostrar uma tela preta no lugar da janela da sua aplicação se a janela usar esse sinalizador.

Esse sinalizador é frequentemente usado por desenvolvedores para páginas em suas aplicações que contêm informações sensíveis, como páginas de login. Se você estiver vendo uma tela preta no lugar da tela da sua aplicação para determinadas páginas, como a página de login, trabalhe com seus desenvolvedores para obter uma versão da aplicação que não use esse sinalizador para testes.

Além disso, observe que o Device Farm ainda pode interagir com janelas de aplicações que tenham esse sinalizador. Portanto, se a página de login da aplicação aparecer como uma tela preta, você ainda poderá inserir suas credenciais para fazer login na aplicação (e, assim, visualizar páginas não bloqueadas pelo sinalizador FLAG_SECURE).