Problembehandlung bei Android-Anwendungstests in AWS Device Farm - AWS Device Farm

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehandlung bei Android-Anwendungstests in AWS Device Farm

Im folgenden Thema werden Fehlermeldungen aufgeführt, die beim Hochladen von Android-Anwendungstests auftreten können, und Umgehungen für die einzelnen Fehler empfohlen.

Anmerkung

Die folgenden Anweisungen gelten für Linux x86_64 and Mac.

ANDROID_APP_UNZIP_FAILED

Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

Warnung

Ihre Anwendung konnte nicht geöffnet werden. Prüfen Sie, ob die Datei gültig ist, und versuchen Sie es erneut.

Stellen Sie sicher, dass Sie das Anwendungspaket fehlerfrei dekomprimieren können. Im folgenden Beispiel ist der Name des Pakets app-debug.apk.

  1. Kopieren Sie das Testpaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:

    $ unzip app-debug.apk
  2. Nachdem Sie das Paket erfolgreich extrahiert haben, können Sie die Baumstruktur für das Arbeitsverzeichnis anzeigen, indem Sie den folgenden Befehl ausführen:

    $ tree .

    Bei einem gültigen Android-Anwendungspaket sollte die Ausgabe wie folgt aussehen:

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

    Weitere Informationen finden Sie unter Android-Tests in der AWS Device Farm.

ANDROID_APP_AAPT_DEBUG_BADGING_FAILED

Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

Warnung

Wir konnten keine Informationen zu Ihrer Anwendung extrahieren. Überprüfen Sie mit dem Befehl aapt debug badging <path to your test package>, ob die Anwendung gültig ist, und versuchen Sie es erneut, wenn der Befehl keine Fehler zurückgibt.

Während des Upload-Validierungsprozesses analysiert AWS Device Farm Informationen aus der Ausgabe eines aapt debug badging <path to your package> Befehls.

Stellen Sie sicher, dass Sie diesen Befehl erfolgreich für Ihre Android-Anwendung ausführen können. Im folgenden Beispiel ist der Name des Pakets app-debug.apk.

  • Kopieren Sie Ihr Anwendungspaket in Ihr Arbeitsverzeichnis und führen Sie dann den Befehl aus:

    $ aapt debug badging app-debug.apk

    Bei einem gültigen Android-Anwendungspaket sollte die Ausgabe wie folgt aussehen:

    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'

    Weitere Informationen finden Sie unter Android-Tests in der AWS Device Farm.

ANDROID_APP_PACKAGE_NAME_VALUE_MISSING

Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

Warnung

Der Paketname konnte in Ihrer Anwendung nicht gefunden werden. Bitte stellen Sie sicher, dass die Anwendung gültig ist, indem Sie den Befehl aapt debug badging <path to your test package> ausführen, und versuchen Sie es erneut, nachdem der Paketname hinter dem Schlüsselwort "„Paket: Name“ angezeigt wurde.

Während des Upload-Validierungsprozesses analysiert AWS Device Farm den Wert des Paketnamens aus der Ausgabe eines aapt debug badging <path to your package> Befehls.

Stellen Sie sicher, dass Sie diesen Befehl für Ihre Android-Anwendung ausführen und den Wert für den Paketnamen erfolgreich finden können. Im folgenden Beispiel ist der Name des Pakets app-debug.apk.

  • Kopieren Sie das Anwendungspaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:

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

    Bei einem gültigen Android-Anwendungspaket sollte die Ausgabe wie folgt aussehen:

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

    Weitere Informationen finden Sie unter Android-Tests in der AWS Device Farm.

ANDROID_APP_SDK_VERSION_VALUE_MISSING

Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

Warnung

Wir konnten den SDK Versionswert in Ihrer Anwendung nicht finden. Bitte überprüfen Sie, ob die Anwendung gültig ist, indem Sie den Befehl ausführenaapt debug badging <path to your test package>, und versuchen Sie es erneut, nachdem Sie den SDK Versionswert hinter dem Schlüsselwort gefunden habensdkVersion.

Während der Upload-Validierung analysiert AWS Device Farm den SDK Versionswert aus der Ausgabe eines aapt debug badging <path to your package> Befehls.

Stellen Sie sicher, dass Sie diesen Befehl für Ihre Android-Anwendung ausführen und den Wert für den Paketnamen erfolgreich finden können. Im folgenden Beispiel ist der Name des Pakets app-debug.apk.

  • Kopieren Sie das Anwendungspaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:

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

    Bei einem gültigen Android-Anwendungspaket sollte die Ausgabe wie folgt aussehen:

    sdkVersion:'9'

    Weitere Informationen finden Sie unter Android-Tests in der AWS Device Farm.

ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED

Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

Warnung

Wir konnten die gültige AndroidManifest XML-Datei in Ihrer Anwendung nicht finden. Überprüfen Sie mit dem Befehl aapt dump xmltree <path to your test package> AndroidManifest.xml, ob das Testpaket gültig ist, und versuchen Sie es erneut, wenn der Befehl keine Fehler mehr zurückgibt.

Während des Upload-Validierungsprozesses analysiert AWS Device Farm mithilfe des Befehls Informationen aus dem XML Analysebaum nach einer XML Datei, die im Paket enthalten ist. aapt dump xmltree <path to your package> AndroidManifest.xml

Stellen Sie sicher, dass Sie diesen Befehl erfolgreich für Ihre Android-Anwendung ausführen können. Im folgenden Beispiel ist der Name des Pakets app-debug.apk.

  • Kopieren Sie das Anwendungspaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:

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

    Bei einem gültigen Android-Anwendungspaket sollte die Ausgabe wie folgt aussehen:

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

    Weitere Informationen finden Sie unter Android-Tests in der AWS Device Farm.

ANDROID_APP_DEVICE_ADMIN_PERMISSIONS

Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

Warnung

Wir haben festgestellt, dass Ihre Anwendung Administratorberechtigungen für das Gerät erfordert. Bitte stellen Sie sicher, dass die Berechtigungen nicht erforderlich sind, indem Sie den Befehl aapt dump xmltree <path to your test package> AndroidManifest.xml ausführen, und versuchen Sie es erneut, nachdem Sie sichergestellt haben, dass die Ausgabe das Stichwort android.permission.BIND_DEVICE_ADMIN nicht enthält.

Während des Upload-Validierungsprozesses analysiert AWS Device Farm mithilfe des Befehls die Berechtigungsinformationen aus dem XML-Analysebaum für eine im Paket enthaltene XML-Datei. aapt dump xmltree <path to your package> AndroidManifest.xml

Stellen Sie sicher, dass Ihre Anwendung keine Administratorberechtigung für das Gerät benötigt. Im folgenden Beispiel ist der Name des Pakets app-debug.apk.

  • Kopieren Sie das Anwendungspaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:

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

    Die Ausgabe sollte folgendermaßen aussehen:

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

    Wenn die Android-Anwendung gültig ist, sollte die Ausgabe Folgendes nicht enthalten: A: android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw: "android.permission.BIND_DEVICE_ADMIN").

    Weitere Informationen finden Sie unter Android-Tests in der AWS Device Farm.

Bestimmte Fenster in meiner Android-Anwendung zeigen einen leeren oder schwarzen Bildschirm

Wenn Sie eine Android-Anwendung testen und feststellen, dass bestimmte Fenster in der Anwendung in der Videoaufzeichnung Ihres Tests von Device Farm mit einem schwarzen Bildschirm angezeigt werden, verwendet Ihre Anwendung möglicherweise die FLAG_SECURE Android-Funktion. Diese Markierung (wie in der offiziellen Dokumentation von Android beschrieben) wird verwendet, um zu verhindern, dass bestimmte Fenster einer Anwendung von Bildschirmaufzeichnungstools aufgezeichnet werden. Daher zeigt die Bildschirmaufzeichnungsfunktion von Device Farm (sowohl für Automatisierungs- als auch für Fernzugriffstests) möglicherweise einen schwarzen Bildschirm anstelle des Fensters Ihrer Anwendung an, wenn das Fenster diese Flagge verwendet.

Dieses Kennzeichen wird häufig von Entwicklern für Seiten in ihrer Anwendung verwendet, die vertrauliche Informationen enthalten, z. B. Anmeldeseiten. Wenn Sie für bestimmte Seiten wie die Anmeldeseite Ihrer Anwendung einen schwarzen Bildschirm anstelle des Bildschirms Ihrer Anwendung sehen, arbeiten Sie mit Ihren Entwicklern zusammen, um einen Build der Anwendung zu erhalten, der dieses Kennzeichen nicht zum Testen verwendet.

Beachten Sie außerdem, dass Device Farm weiterhin mit Anwendungsfenstern interagieren kann, die dieses Flag haben. Wenn also die Anmeldeseite Ihrer Anwendung als schwarzer Bildschirm angezeigt wird, können Sie möglicherweise immer noch Ihre Anmeldeinformationen eingeben, um sich bei der Anwendung anzumelden (und so Seiten anzuzeigen, die nicht durch die FLAG_SECURE Markierung blockiert wurden).