

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memecahkan masalah pengujian aplikasi Android di AWS Device Farm
<a name="troubleshooting-android-applications"></a>

Topik berikut mencantumkan pesan galat yang terjadi selama pengunggahan pengujian aplikasi Android dan merekomendasikan solusi untuk mengatasi setiap kesalahan.

**catatan**  
Petunjuk di bawah ini didasarkan pada Linux x86\$164 dan Mac.

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

Jika Anda melihat pesan berikut, ikuti langkah-langkah berikut untuk memperbaiki masalah.

**Awas**  
Kami tidak dapat membuka aplikasi Anda. Harap verifikasi bahwa file tersebut valid dan coba lagi.

Pastikan Anda dapat unzip paket aplikasi tanpa kesalahan. Dalam contoh berikut, nama paket adalah **app-debug.apk**.

1. Salin paket pengujian Anda ke direktori kerja Anda, lalu jalankan perintah berikut:

   ```
   $ unzip app-debug.apk
   ```

1. Setelah Anda berhasil unzip paket, Anda dapat menemukan struktur pohon direktori kerja dengan menjalankan perintah berikut:

   ```
   $ tree .
   ```

   Paket aplikasi Android yang valid harus menghasilkan output seperti berikut:

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

   Untuk informasi selengkapnya, lihat [Pengujian Android di AWS Device Farm](test-types-android-tests.md).

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

Jika Anda melihat pesan berikut, ikuti langkah-langkah berikut untuk memperbaiki masalah.

**Awas**  
Kami tidak dapat mengekstrak informasi tentang aplikasi Anda. Harap verifikasi bahwa aplikasi tersebut valid dengan menjalankan perintah`aapt debug badging <path to your test package>`, dan coba lagi setelah perintah tidak mencetak kesalahan apa pun. 

Selama proses validasi unggahan, AWS Device Farm mem-parsing informasi dari output perintah`aapt debug badging <path to your package>`. 

Pastikan Anda dapat menjalankan perintah ini di aplikasi Android Anda dengan sukses. Dalam contoh berikut, nama paket adalah **app-debug.apk**.
+ Salin paket aplikasi Anda ke direktori kerja Anda, lalu jalankan perintah:

  ```
  $ aapt debug badging app-debug.apk
  ```

  Paket aplikasi Android yang valid harus menghasilkan output seperti berikut:

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

  Untuk informasi selengkapnya, lihat [Pengujian Android di AWS Device Farm](test-types-android-tests.md).

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

Jika Anda melihat pesan berikut, ikuti langkah-langkah berikut untuk memperbaiki masalah.

**Awas**  
Kami tidak dapat menemukan nilai nama paket dalam aplikasi Anda. Harap verifikasi bahwa aplikasi tersebut valid dengan menjalankan perintah`aapt debug badging <path to your test package>`, dan coba lagi setelah menemukan nilai nama paket di belakang kata kunci “package: name.”

Selama proses validasi upload, AWS Device Farm mem-parsing nilai nama paket dari output perintah`aapt debug badging <path to your package>`.

Pastikan Anda dapat menjalankan perintah ini di aplikasi Android Anda dan menemukan nilai nama paket dengan sukses. Dalam contoh berikut, nama paket adalah **app-debug.apk**.
+ Salin paket aplikasi Anda ke direktori kerja Anda, lalu jalankan perintah berikut:

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

  Paket aplikasi Android yang valid harus menghasilkan output seperti berikut:

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

  Untuk informasi selengkapnya, lihat [Pengujian Android di AWS Device Farm](test-types-android-tests.md).

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

Jika Anda melihat pesan berikut, ikuti langkah-langkah berikut untuk memperbaiki masalah.

**Awas**  
Kami tidak dapat menemukan nilai versi SDK di aplikasi Anda. Harap verifikasi bahwa aplikasi valid dengan menjalankan perintah`aapt debug badging <path to your test package>`, dan coba lagi setelah menemukan nilai versi SDK di belakang kata kunci`sdkVersion`.

Selama proses validasi upload, AWS Device Farm mem-parsing nilai versi SDK dari output perintah. `aapt debug badging <path to your package>`

Pastikan Anda dapat menjalankan perintah ini di aplikasi Android Anda dan menemukan nilai nama paket dengan sukses. Dalam contoh berikut, nama paket adalah **app-debug.apk**.
+ Salin paket aplikasi Anda ke direktori kerja Anda, lalu jalankan perintah berikut:

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

  Paket aplikasi Android yang valid harus menghasilkan output seperti berikut:

  ```
  sdkVersion:'9'
  ```

  Untuk informasi selengkapnya, lihat [Pengujian Android di AWS Device Farm](test-types-android-tests.md).

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

Jika Anda melihat pesan berikut, ikuti langkah-langkah berikut untuk memperbaiki masalah.

**Awas**  
Kami tidak dapat menemukan AndroidManifest .xml.xl yang valid dalam aplikasi Anda. Harap verifikasi bahwa paket pengujian valid dengan menjalankan perintah`aapt dump xmltree <path to your test package> AndroidManifest.xml`, dan coba lagi setelah perintah tidak mencetak kesalahan apa pun.

Selama proses validasi upload, AWS Device Farm mem-parsing informasi dari pohon parse XMLuntuk file XMLyang terdapat dalam paket menggunakan perintah. `aapt dump xmltree <path to your package> AndroidManifest.xml`

Pastikan Anda dapat menjalankan perintah ini di aplikasi Android Anda dengan sukses. Dalam contoh berikut, nama paket adalah **app-debug.apk**.
+ Salin paket aplikasi Anda ke direktori kerja Anda, lalu jalankan perintah berikut:

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

  Paket aplikasi Android yang valid harus menghasilkan output seperti berikut:

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

  Untuk informasi selengkapnya, lihat [Pengujian Android di AWS Device Farm](test-types-android-tests.md).

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

Jika Anda melihat pesan berikut, ikuti langkah-langkah berikut untuk memperbaiki masalah.

**Awas**  
Kami menemukan bahwa aplikasi Anda memerlukan izin admin perangkat. Harap verifikasi bahwa izin tidak diperlukan dengan menjalankan perintah`aapt dump xmltree <path to your test package> AndroidManifest.xml`, dan coba lagi setelah memastikan bahwa output tidak mengandung kata kunci`android.permission.BIND_DEVICE_ADMIN`.

Selama proses validasi unggahan, AWS Device Farm mem-parsing informasi izin dari pohon parse xmluntuk file xmlyang terdapat dalam paket menggunakan perintah. `aapt dump xmltree <path to your package> AndroidManifest.xml`

Pastikan aplikasi Anda tidak memerlukan izin admin perangkat. Dalam contoh berikut, nama paket adalah **app-debug.apk**.
+ Salin paket aplikasi Anda ke direktori kerja Anda, lalu jalankan perintah berikut:

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

  Anda harus menemukan output seperti berikut:

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

  Jika aplikasi Android valid, output tidak boleh berisi yang berikut:`A: android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw: "android.permission.BIND_DEVICE_ADMIN")`. 

  Untuk informasi selengkapnya, lihat [Pengujian Android di AWS Device Farm](test-types-android-tests.md).

## Jendela tertentu di aplikasi Android saya menampilkan layar kosong atau hitam
<a name="flag-secure-screen-issue"></a>

Jika Anda menguji aplikasi Android dan melihat bahwa jendela tertentu dalam aplikasi muncul dengan layar hitam dalam perekaman video Device Farm dari pengujian Anda, aplikasi Anda mungkin menggunakan `FLAG_SECURE` fitur Android. Bendera ini (seperti yang dijelaskan dalam [dokumentasi resmi Android](https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE)) digunakan untuk mencegah jendela aplikasi tertentu direkam oleh alat perekam layar. Akibatnya, fitur perekaman layar Device Farm (untuk otomatisasi dan pengujian akses jarak jauh) dapat menampilkan layar hitam sebagai pengganti jendela aplikasi Anda jika jendela menggunakan bendera ini. 

Bendera ini sering digunakan oleh pengembang untuk halaman dalam aplikasi mereka yang berisi informasi sensitif seperti halaman login. Jika Anda melihat layar hitam di tempat layar aplikasi Anda untuk halaman tertentu seperti halaman loginnya, bekerja dengan pengembang Anda untuk mendapatkan build aplikasi yang tidak menggunakan bendera ini untuk pengujian.

Selain itu, perhatikan bahwa Device Farm masih dapat berinteraksi dengan jendela aplikasi yang memiliki tanda ini. Jadi, jika halaman login aplikasi Anda muncul sebagai layar hitam, Anda mungkin masih dapat memasukkan kredensi Anda untuk masuk ke aplikasi (dan dengan demikian melihat halaman yang tidak diblokir oleh `FLAG_SECURE` bendera).