Solución de problemas de pruebas de aplicaciones Android en AWS Device Farm - AWS Device Farm

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas de pruebas de aplicaciones Android en AWS Device Farm

En el siguiente tema se muestra una lista de mensajes de error que se producen durante la carga de las pruebas de aplicaciones Android y recomienda soluciones para resolver cada error.

nota

Las siguientes instrucciones se basan en Linux x86_64 y Mac.

ANDROID_APP_UNZIP_FAILED

Si aparece el siguiente mensaje, siga estos pasos para solucionar el problema.

aviso

We could not open your application. Please verify that the file is valid and try again.

Asegúrese de que puede descomprimir el paquete de aplicaciones sin errores. En el siguiente ejemplo, el nombre del paquete es app-debug.apk.

  1. Copie el paquete de pruebas a su directorio de trabajo y, a continuación, ejecute el siguiente comando:

    $ unzip app-debug.apk
  2. Después de descomprimir correctamente el paquete, ejecute el siguiente comando para que aparezca la estructura de árbol de directorios de trabajo:

    $ tree .

    Un paquete de aplicaciones Android válido debería producir una salida similar a esta:

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

    Para obtener más información, consulte Trabajar con pruebas de Android en AWS Device Farm.

ANDROID_APP_AAPT_DEBUG_BADGING_FAILED

Si aparece el siguiente mensaje, siga estos pasos para solucionar el problema.

aviso

We could not extract information about your application. Please verify that the application is valid by running the command aapt debug badging <path to your test package>, and try again after the command does not print any error.

durante el proceso de validación de carga, AWS Device Farm extrae la información de la salida de un comando aapt debug badging <path to your package>.

Asegúrese de que puede ejecutar correctamente este comando en la aplicación Android. En el siguiente ejemplo, el nombre del paquete es app-debug.apk.

  • Copie el paquete de aplicaciones a su directorio de trabajo y, a continuación, ejecute el comando:

    $ aapt debug badging app-debug.apk

    Un paquete de aplicaciones Android válido debería producir una salida similar a esta:

    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 obtener más información, consulte Trabajar con pruebas de Android en AWS Device Farm.

ANDROID_APP_PACKAGE_NAME_VALUE_MISSING

Si aparece el siguiente mensaje, siga estos pasos para solucionar el problema.

aviso

We could not find the package name value in your application. Please verify that the application is valid by running the command aapt debug badging <path to your test package>, and try again after finding the package name value behind the keyword "package: name."

durante el proceso de validación de carga, AWS Device Farm extrae el valor del nombre del paquete de la salida de un comando aapt debug badging <path to your package>.

Asegúrese de que puede ejecutar este comando en la aplicación Android y encontrar el valor del nombre del paquete de forma correcta. En el siguiente ejemplo, el nombre del paquete es app-debug.apk.

  • Copie el paquete de aplicaciones a su directorio de trabajo y, a continuación, ejecute el siguiente comando:

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

    Un paquete de aplicaciones Android válido debería producir una salida similar a esta:

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

    Para obtener más información, consulte Trabajar con pruebas de Android en AWS Device Farm.

ANDROID_APP_SDK_VERSION_VALUE_MISSING

Si aparece el siguiente mensaje, siga estos pasos para solucionar el problema.

aviso

We could not find the SDK version value in your application. Please verify that the application is valid by running the command aapt debug badging <path to your test package>, and try again after finding the SDK version value behind the keyword sdkVersion.

durante el proceso de validación de carga, AWS Device Farm extrae el valor de la versión de SDK de la salida de un comando aapt debug badging <path to your package>.

Asegúrese de que puede ejecutar este comando en la aplicación Android y encontrar el valor del nombre del paquete de forma correcta. En el siguiente ejemplo, el nombre del paquete es app-debug.apk.

  • Copie el paquete de aplicaciones a su directorio de trabajo y, a continuación, ejecute el siguiente comando:

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

    Un paquete de aplicaciones Android válido debería producir una salida similar a esta:

    sdkVersion:'9'

    Para obtener más información, consulte Trabajar con pruebas de Android en AWS Device Farm.

ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED

Si aparece el siguiente mensaje, siga estos pasos para solucionar el problema.

aviso

We could not find the valid AndroidManifest.xml in your application. Please verify that the test package is valid by running the command aapt dump xmltree <path to your test package> AndroidManifest.xml, and try again after the command does not print any error.

durante el proceso de validación de carga, AWS Device Farm extrae información del árbol de análisis de XML para un archivo XML contenido en el paquete mediante el comando aapt dump xmltree <path to your package> AndroidManifest.xml.

Asegúrese de que puede ejecutar correctamente este comando en la aplicación Android. En el siguiente ejemplo, el nombre del paquete es app-debug.apk.

  • Copie el paquete de aplicaciones a su directorio de trabajo y, a continuación, ejecute el siguiente comando:

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

    Un paquete de aplicaciones Android válido debería producir una salida similar a esta:

    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 obtener más información, consulte Trabajar con pruebas de Android en AWS Device Farm.

ANDROID_APP_DEVICE_ADMIN_PERMISSIONS

Si aparece el siguiente mensaje, siga estos pasos para solucionar el problema.

aviso

We found that your application requires device admin permissions. Please verify that the permissions are not required by run the command aapt dump xmltree <path to your test package> AndroidManifest.xml, and try again after making sure that output does not contain the keyword android.permission.BIND_DEVICE_ADMIN.

durante el proceso de validación de carga, AWS Device Farm extrae información de permisos del árbol de análisis de XML para un archivo XML contenido en el paquete mediante el comando aapt dump xmltree <path to your package> AndroidManifest.xml.

Asegúrese de que la aplicación no requiere permiso de administración de dispositivos. En el siguiente ejemplo, el nombre del paquete es app-debug.apk.

  • Copie el paquete de aplicaciones a su directorio de trabajo y, a continuación, ejecute el siguiente comando:

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

    Debería aparecer una salida como la siguiente:

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

    Si la aplicación Android es válida, la salida no debería contener lo siguiente: A: android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw: "android.permission.BIND_DEVICE_ADMIN").

    Para obtener más información, consulte Trabajar con pruebas de Android en AWS Device Farm.

Algunas ventanas de mi aplicación de Android muestran una pantalla en blanco o negra

Si está probando una aplicación de Android y observa que algunas ventanas de la aplicación aparecen con una pantalla negra en la grabación de vídeo de la prueba realizada por Device Farm, es posible que la aplicación esté utilizando la característica de Android FLAG_SECURE. Este indicador (tal y como se describe en la documentación oficial de Android) se utiliza para impedir que las herramientas de grabación de pantalla graben determinadas ventanas de una aplicación. Como resultado, la característica de grabación de pantalla de Device Farm (tanto para las pruebas de automatización como para las de acceso remoto) puede mostrar una pantalla negra en lugar de la ventana de la aplicación si esta utiliza esta marca.

Los desarrolladores suelen utilizar esta marca para las páginas de sus aplicaciones que contienen información confidencial, como las páginas de inicio de sesión. Si ve una pantalla negra en lugar de la pantalla de la aplicación en determinadas páginas, como la página de inicio de sesión, trabaje con sus desarrolladores para obtener una versión de la aplicación que no utilice esta marca para las pruebas.

Además, tenga en cuenta que Device Farm puede seguir interactuando con las ventanas de aplicaciones que tengan este indicador. Por lo tanto, si la página de inicio de sesión de su aplicación aparece como una pantalla negra, es posible que aún pueda introducir sus credenciales de registro en la aplicación (y así ver las páginas no bloqueadas por la bandera FLAG_SECURE).