Memecahkan masalah pengujian aplikasi Android di AWS Device Farm - Device Farm AWS

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

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_64 dan Mac.

ANDROID_APP_UNZIP_FAILED

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 adalahapp-debug.apk.

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

    $ unzip app-debug.apk
  2. 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 Bekerja dengan pengujian Android di AWS Device Farm.

ANDROID_APP_AAPT_DEBUG_BADGING_FAILED

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 perintahaapt 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 outputaapt debug badging <path to your package>perintah.

Pastikan Anda dapat menjalankan perintah ini di aplikasi Android Anda dengan sukses. Dalam contoh berikut, nama paket adalahapp-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 Bekerja dengan pengujian Android di AWS Device Farm.

ANDROID_APP_PACKAGE_NAME_VALUE_MISSING

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 perintahaapt debug badging <path to your test package>, dan coba lagi setelah menemukan nilai nama paket di belakang kata kunci “package: name.”

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

Pastikan Anda dapat menjalankan perintah ini di aplikasi Android Anda dan menemukan nilai nama paket dengan sukses. Dalam contoh berikut, nama paket adalahapp-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 Bekerja dengan pengujian Android di AWS Device Farm.

ANDROID_APP_SDK_VERSION_VALUE_MISSING

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 tersebut valid dengan menjalankan perintahaapt debug badging <path to your test package>, dan coba lagi setelah menemukan nilai versi SDK di belakang kata kuncisdkVersion.

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

Pastikan Anda dapat menjalankan perintah ini di aplikasi Android Anda dan menemukan nilai nama paket dengan sukses. Dalam contoh berikut, nama paket adalahapp-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 Bekerja dengan pengujian Android di AWS Device Farm.

ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED

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

Awas

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

Selama proses validasi unggahan, AWS Device Farm mem-parsing informasi dari pohon parse XMLuntuk file XMLyang terdapat dalam paket menggunakan perintahaapt 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 adalahapp-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 Bekerja dengan pengujian Android di AWS Device Farm.

ANDROID_APP_DEVICE_ADMIN_PERMISSIONS

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 perintahaapt dump xmltree <path to your test package> AndroidManifest.xml, dan coba lagi setelah memastikan bahwa output tidak mengandung kata kunciandroid.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 perintahaapt dump xmltree <path to your package> AndroidManifest.xml.

Pastikan aplikasi Anda tidak memerlukan izin admin perangkat. Dalam contoh berikut, nama paket adalahapp-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 Bekerja dengan pengujian Android di AWS Device Farm.

Jendela tertentu di aplikasi Android saya menampilkan layar kosong atau hitam

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 AndroidFLAG_SECUREfitur. Bendera ini (seperti yang dijelaskan dalamDokumentasi resmi Android) digunakan untuk mencegah jendela tertentu dari suatu aplikasi 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 bendera 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 olehFLAG_SECUREbendera).