

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.

# Fehlerbehebung bei Android-Anwendungstests in AWS Device Farm
<a name="troubleshooting-android-applications"></a>

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\$164 and Mac.

## ANDROID\$1APP\$1UNZIP\$1FAILED
<a name="ANDROID_APP_UNZIP_FAILED"></a>

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
   ```

1. 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](test-types-android-tests.md).

## ANDROID\$1APP\$1AAPT\$1DEBUG\$1BADGING\$1FAILED
<a name="ANDROID_APP_AAPT_DEBUG_BADGING_FAILED"></a>

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](test-types-android-tests.md).

## ANDROID\$1APP\$1PACKAGE\$1NAME\$1VALUE\$1MISSING
<a name="ANDROID_APP_PACKAGE_NAME_VALUE_MISSING"></a>

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](test-types-android-tests.md).

## ANDROID\$1APP\$1SDK\$1VERSION\$1VALUE\$1MISSING
<a name="ANDROID_APP_SDK_VERSION_VALUE_MISSING"></a>

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

**Warnung**  
Die SDK-Version 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 die SDK-Version hinter dem Schlüsselwort `sdkVersion` angezeigt wurde.

Während des Upload-Validierungsprozesses 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](test-types-android-tests.md).

## ANDROID\$1APP\$1AAPT\$1DUMP\$1XMLTREE\$1FAILED
<a name="ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED"></a>

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 im Paket enthaltenen XML-Datei. `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](test-types-android-tests.md).

## ANDROID\$1APP\$1DEVICE\$1ADMIN\$1PERMISSIONS
<a name="ANDROID_APP_DEVICE_ADMIN_PERMISSIONS"></a>

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](test-types-android-tests.md).

## Bestimmte Fenster in meiner Android-Anwendung zeigen einen leeren oder schwarzen Bildschirm
<a name="flag-secure-screen-issue"></a>

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](https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE) 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).