

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Device Farm でのインストルメンテーションテストのトラブルシューティング
<a name="troubleshooting-instrumentation-tests"></a>

次のトピックでは、インストルメンテーションテストのアップロード中に発生するエラーメッセージを挙げ、各エラーを解決するための推奨回避策を示します。

**注記**  
AWS Device Farm でインストルメンテーションテストを使用する際の重要な考慮事項については、「[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)」を参照してください。

## INSTRUMENTATION\_TEST\_PACKAGE\_UNZIP\_FAILED
<a name="INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

```
Warning: We could not open your test APK file. Please verify that the file is valid and
    try again.
```

エラーなしでテストパッケージを解凍できることを確かめます。次の例では、パッケージ名は「**app-debug-androidTest-unaligned.apk**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

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

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   有効なインストルメンテーションテストパッケージでは、次のような出力が生成されます:

   ```
   .
   |-- AndroidManifest.xml
   |--  classes.dex
   |-- resources.arsc
   |-- LICENSE-junit.txt
   |-- junit (directory)
   `-- META-INF (directory)
   ```

   詳細については、「[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)」を参照してください。

## INSTRUMENTATION\_TEST\_PACKAGE\_AAPT\_DEBUG\_BADGING\_FAILED
<a name="INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

```
We could not extract information about your test package. Please verify that the
      test package is valid by running the command "aapt debug badging <path to your test
      package>", and try again after the command does not print any error.
```

アップロード検証プロセス中に、Device Farm は `aapt debug badging <path to your package>` コマンドの出力から情報を解析します。

インストルメンテーションテストパッケージでこのコマンドを正常に実行できることを確かめます。

次の例では、パッケージ名は「**app-debug-androidTest-unaligned.apk**」です。
+ テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

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

  有効なインストルメンテーションテストパッケージでは、次のような出力が生成されます:

  ```
  package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'
  sdkVersion:'9'
  targetSdkVersion:'22'
  application-label:'Test-api'
  application: label='Test-api' icon=''
  application-debuggable
  uses-library:'android.test.runner'
  feature-group: label=''
  uses-feature: name='android.hardware.touchscreen'
  uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps'
  supports-screens: 'small' 'normal' 'large' 'xlarge'
  supports-any-density: 'true'
  locales: '--_--'
  densities: '160'
  ```

  詳細については、「[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)」を参照してください。

## INSTRUMENTATION\_TEST\_PACKAGE\_INSTRUMENTATION\_RUNNER\_VALUE\_MISSING
<a name="INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

```
We could not find the instrumentation runner value in the AndroidManifest.xml.
      Please verify the test package is valid by running the command "aapt dump xmltree <path to
      your test package> AndroidManifest.xml", and try again after finding the instrumentation
      runner value behind the keyword "instrumentation."
```

アップロード検証プロセス中に、Device Farm はパッケージに含まれる XML ファイルの XML 解析ツリーからインストルメンテーションランナーの値を解析します。以下の `aapt dump xmltree <path to your package> AndroidManifest.xml` コマンドを使用できます:

インストルメンテーションテストパッケージでこのコマンドを実行でき、インストルメンテーションの値を正常に見つけられることを確かめます。

次の例では、パッケージ名は「**app-debug-androidTest-unaligned.apk**」です。
+ テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

  ```
  $ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml | grep -A5 "instrumentation"
  ```

  有効なインストルメンテーションテストパッケージでは、次のような出力が生成されます:

  ```
  E: instrumentation (line=9)
        A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp")
        A: android:name(0x01010003)="{{android.support.test.runner.AndroidJUnitRunner}}" (Raw: "android.support.test.runner.AndroidJUnitRunner")
        A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp")
        A: android:handleProfiling(0x01010022)=(type 0x12)0x0
        A: android:functionalTest(0x01010023)=(type 0x12)0x0
  ```

  詳細については、「[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)」を参照してください。

## INSTRUMENTATION\_TEST\_PACKAGE\_AAPT\_DUMP\_XMLTREE\_FAILED
<a name="INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

```
We could not find the valid AndroidManifest.xml in your test package. Please
      verify that the test package is valid by running the command "aapt dump xmltree <path to
      your test package> AndroidManifest.xml", and try again after the command does not print any
      error.
```

アップロード検証プロセス中に、Device Farm は `aapt dump xmltree <path to your package> AndroidManifest.xml` コマンドを使用してパッケージに含まれる XML ファイルの XML 解析ツリーから情報を解析します:

インストルメンテーションテストパッケージでこのコマンドを正常に実行できることを確かめます。

次の例では、パッケージ名は「**app-debug-androidTest-unaligned.apk**」です。
+ テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

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

  有効なインストルメンテーションテストパッケージでは、次のような出力が生成されます:

  ```
  N: android=http://schemas.android.com/apk/res/android
    E: manifest (line=2)
      A: package="com.amazon.aws.adf.android.referenceapp.test" (Raw: "com.amazon.aws.adf.android.referenceapp.test")
      A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22")
      A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727")
      E: uses-sdk (line=5)
        A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9
        A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16
      E: instrumentation (line=9)
        A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp")
        A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner")
        A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp")
        A: android:handleProfiling(0x01010022)=(type 0x12)0x0
        A: android:functionalTest(0x01010023)=(type 0x12)0x0
      E: application (line=16)
        A: android:label(0x01010001)=@0x7f020000
        A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
        E: uses-library (line=17)
          A: android:name(0x01010003)="android.test.runner" (Raw: "android.test.runner")
  ```

  詳細については、「[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)」を参照してください。

## INSTRUMENTATION\_TEST\_PACKAGE\_TEST\_PACKAGE\_NAME\_VALUE\_MISSING
<a name="INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

```
We could not find the package name in your test package. Please verify that the
      test package is valid by running the command "aapt debug badging <path to your test
      package>", and try again after finding the package name value behind the keyword "package:
      name."
```

アップロード検証プロセス中に、Device Farm は `aapt debug badging <path to your package>` コマンドの出力からパッケージ名の値を解析します:

インストルメンテーションテストパッケージでこのコマンドを実行でき、パッケージ名の値を正常に見つけられることを確かめます。

次の例では、パッケージ名は「**app-debug-androidTest-unaligned.apk**」です。
+ テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

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

  有効なインストルメンテーションテストパッケージでは、次のような出力が生成されます:

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

  詳細については、「[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)」を参照してください。