翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Device Farm での Android アプリケーションテストのトラブルシューティング
次のトピックでは、Android アプリケーションテストのアップロード中に発生するエラーメッセージを挙げ、各エラーを解決するための推奨回避策を伝えます。
注記
以下の手順は Linux x86_64 および Mac を対象にしています。
ANDROID_APP_UNZIP_FAILED
次のメッセージが表示された場合は、下の手順に従って問題を解決してください。
警告
アプリケーションを開けませんでした。ファイルが有効であることを確認して、もう一度お試しください。
エラーなしでアプリケーションパッケージを解凍できることを確かめてください。次の例では、パッケージ名は app-debug.apk です。
-
テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:
$ unzip app-debug.apk
-
正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:
$ tree .
有効な Android アプリケーションパッケージでは、次のような出力が生成されます:
. |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- assets (directory) |-- res (directory) `-- META-INF (directory)
詳細については、「AWS Device Farm での Android テスト」を参照してください。
ANDROID_APP_AAPT_DEBUG_BADGING_FAILED
次のメッセージが表示された場合は、下の手順に従って問題を解決してください。
警告
アプリケーションに関する情報を抽出できませんでした。aapt debug badging
コマンドを実行してアプリケーションが有効であることを確認し、コマンドがエラーを出力しなくなってからもう一度試してください。<path to your test
package>
アップロードの検証プロセス中、AWSDevice Farm はaapt debug badging
コマンドの出力から情報を解析します。<path to your package>
Android アプリケーションでこのコマンドを正常に実行できることを確かめてください。次の例では、パッケージ名は app-debug.apk です。
-
アプリケーションパッケージを作業ディレクトリにコピーし、次にコマンドを実行します:
$ aapt debug badging app-debug.apk
有効な Android アプリケーションパッケージでは、次のような出力が生成されます:
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'
詳細については、「AWS Device Farm での Android テスト」を参照してください。
ANDROID_APP_PACKAGE_NAME_VALUE_MISSING
次のメッセージが表示された場合は、下の手順に従って問題を解決してください。
警告
アプリケーション内にパッケージ名の値が見つかりませんでした。aapt debug badging
コマンドを実行してアプリケーションが有効であることを確認し、キーワード "package: name" の後にパッケージ名の値を見つけてからもう一度試して下さい。<path to your test
package>
アップロード検証プロセス中、AWSDevice Farm はaapt debug badging
コマンドの出力からパッケージ名値を解析します。<path to your package>
Android アプリケーションでこのコマンドを実行でき、パッケージ名の値を正常に見つけられることを確かめてください。次の例では、パッケージ名は app-debug.apk です。
-
アプリケーションパッケージを作業ディレクトリにコピーし、次に以下のコマンドを実行します:
$ aapt debug badging app-debug.apk | grep "package: name="
有効な Android アプリケーションパッケージでは、次のような出力が生成されます:
package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727'
詳細については、「AWS Device Farm での Android テスト」を参照してください。
ANDROID_APP_SDK_VERSION_VALUE_MISSING
次のメッセージが表示された場合は、下の手順に従って問題を解決してください。
警告
アプリケーションにSDKバージョン値が見つかりませんでした。コマンド を実行してアプリケーションが有効であることを確認しaapt debug badging
、キーワード の背後にあるSDKバージョン値を見つけた後、もう一度試してください<path to your test package>
sdkVersion
。
アップロードの検証プロセス中、AWSDevice Farm はaapt debug badging
コマンドの出力からSDKバージョン値を解析します。<path to your package>
Android アプリケーションでこのコマンドを実行でき、パッケージ名の値を正常に見つけられることを確かめてください。次の例では、パッケージ名は app-debug.apk です。
-
アプリケーションパッケージを作業ディレクトリにコピーし、次に以下のコマンドを実行します:
$ aapt debug badging app-debug.apk | grep "sdkVersion"
有効な Android アプリケーションパッケージでは、次のような出力が生成されます:
sdkVersion:'9'
詳細については、「AWS Device Farm での Android テスト」を参照してください。
ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED
次のメッセージが表示された場合は、下の手順に従って問題を解決してください。
警告
アプリケーションに有効な AndroidManifest.xml が見つかりませんでした。コマンド aapt dump xmltree
を実行してテストパッケージが有効であることを確認し、コマンドがエラーを出力しなくなってからもう一度試してください。<path to your test
package>
AndroidManifest.xml
アップロードの検証プロセス中、AWSDevice Farm は コマンド を使用して、パッケージに含まれるXMLファイルのXML解析ツリーから情報を解析しますaapt dump xmltree
。<path to your package>
AndroidManifest.xml
Android アプリケーションでこのコマンドを正常に実行できることを確かめてください。次の例では、パッケージ名は app-debug.apk です。
-
アプリケーションパッケージを作業ディレクトリにコピーし、次に以下のコマンドを実行します:
$ aapt dump xmltree app-debug.apk. AndroidManifest.xml
有効な Android アプリケーションパッケージでは、次のような出力が生成されます:
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")
詳細については、「AWS Device Farm での Android テスト」を参照してください。
ANDROID_APP_DEVICE_ADMIN_PERMISSIONS
次のメッセージが表示された場合は、下の手順に従って問題を解決してください。
警告
アプリケーションにデバイス管理者権限が必要なことが見つかりました。aapt dump xmltree
コマンドを実行して権限が必要ないことを確認して、キーワード <path to your test package>
AndroidManifest.xmlandroid.permission.BIND_DEVICE_ADMIN
が出力に含まれていないことを確かめてからもう一度試してください。
アップロード検証プロセス中、AWSDevice Farm は コマンド を使用して、パッケージに含まれる xml ファイルの xml 解析ツリーからアクセス許可情報を解析しますaapt dump xmltree
。<path to your package>
AndroidManifest.xml
アプリケーションにデバイス管理者権限が必要ないことを確認してください。次の例では、パッケージ名は app-debug.apk です。
-
アプリケーションパッケージを作業ディレクトリにコピーし、次に以下のコマンドを実行します:
$ aapt dump xmltree app-debug.apk AndroidManifest.xml
次のような出力が生まれます:
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") ……
Android アプリケーションが有効な場合、出力に以下は含まれません:
A: android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw: "android.permission.BIND_DEVICE_ADMIN")
。詳細については、「AWS Device Farm での Android テスト」を参照してください。
Android アプリケーションの特定ウィンドウに真っ白または真っ黒の画面が表示される
Android アプリケーションをテストしていて、テストにおける Device Farm のビデオ録画でアプリケーション内の特定ウィンドウが真っ黒の画面となる場合は、アプリケーションが Android の FLAG_SECURE
機能を使用している可能性があります。このフラグ (Android の公式ドキュメンテーション
このフラグは、開発者がログインページなどの機密情報を含むアプリケーション内のページによく使用します。ログインページなどの特定ページでアプリケーションの画面が真っ黒になる場合は、開発者と協力して、テストにこのフラグを使用しないアプリケーションのビルドを入手してください。
また、Device Farm は、このフラグが設定されているアプリケーションウィンドウに引き続き双方向対応できることに注意してください。そのため、アプリケーションのログインページが真っ黒の画面になっても、認証情報を入力してアプリケーションにログインできます (これにより、FLAG_SECURE
フラグでブロックされていないページを表示できます)。