本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
对 Device Farm 中的AWS仪器测试进行故障排除
以下主题列出了在上传 Instrumentation 测试期间出现的错误消息并推荐了解决方法来解决每个错误。
INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法打开您的测试APK文件。请验证文件是否有效,然后重试。
确保您可以解压测试程序包,而不会出现错误。在以下示例中,软件包的名称为 app-debug-androidTest-unaligned.apk。
将您的测试程序包复制到工作目录,然后运行以下命令:
$ unzip app-debug-androidTest-unaligned.apk
成功解压缩程序包后,您可以通过运行以下命令找到工作目录树结构:
$ tree .
有效的 Instrumentation 测试程序包将生成类似以下内容的输出:
. |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- LICENSE-junit.txt |-- junit (directory) `-- META-INF (directory)
有关更多信息,请参阅 适用于安卓和 Device Farm 的仪AWS器。
INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法提取有关您的测试程序包的信息。请通过运行命令“aapt debug badging <path to your test package>”验证测试程序包是否有效,然后在该命令未输出任何错误后重试。
在上传验证过程中,Device Farm 解析 aapt debug badging <path to your package>
命令输出中的信息。
确保您可以对 Instrumentation 测试程序包成功运行此命令。
在以下示例中,软件包的名称为 app-debug-androidTest-unaligned.apk。
将您的测试程序包复制到工作目录,然后运行以下命令:
$ aapt debug badging app-debug-androidTest-unaligned.apk
有效的 Instrumentation 测试程序包将生成类似以下内容的输出:
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'
有关更多信息,请参阅 适用于安卓和 Device Farm 的仪AWS器。
INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们在 AndroidManifest .xml 中找不到检测运行器值。请运行命令 “aapt dump xmltree <path to your test package> AndroidManifest.xml” 来验证测试包是否有效,然后在找到关键字 “instrumenting” 后面的检测运行器值后重试。
在上传验证过程中,Device Farm 会从解析树中XML解析出包中包含的XML文件的检测运行器值。您可使用以下命令:aapt dump xmltree <path to your package>
AndroidManifest.xml
。
确保您可以对 Instrumentation 测试程序包运行此命令并成功找到 Instrumentation 值。
在以下示例中,软件包的名称为 app-debug-androidTest-unaligned.apk。
将您的测试程序包复制到工作目录,然后运行以下命令:
$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml | grep -A5 "instrumentation"
有效的 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有关更多信息,请参阅 适用于安卓和 Device Farm 的仪AWS器。
INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们在您的测试包中找不到有效的 AndroidManifest .xml。请运行命令 “aapt dump xmltree <path to your test package> AndroidManifest.xml” 来验证测试包是否有效,然后在该命令未显示任何错误后重试。
在上传验证过程中,Device Farm使用以下命令从XML解析树中解析出包中包含XML的文件的信息:。aapt dump xmltree <path to your package> AndroidManifest.xml
确保您可以对 Instrumentation 测试程序包成功运行此命令。
在以下示例中,软件包的名称为 app-debug-androidTest-unaligned.apk。
将您的测试程序包复制到工作目录,然后运行以下命令:
$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml
有效的 Instrumentation 测试程序包将生成类似以下内容的输出:
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")
有关更多信息,请参阅 适用于安卓和 Device Farm 的仪AWS器。
INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING
如果您看到以下消息,请执行以下步骤来修复此问题。
警告
我们无法在您的测试程序包中找到程序包名称。请通过运行命令“aapt debug badging <path to your test package>”来验证测试程序包是否有效,并在关键字“package: name”后面找到程序包名称值后重试。
在上传验证过程中,Device Farm 解析以下命令输出中的程序包名称值:aapt debug badging <path to your package>
。
确保您可以对 Instrumentation 测试程序包运行此命令并成功找到程序包名称值。
在以下示例中,软件包的名称为 app-debug-androidTest-unaligned.apk。
将您的测试程序包复制到工作目录,然后运行以下命令:
$ aapt debug badging app-debug-androidTest-unaligned.apk | grep "package: name="
有效的 Instrumentation 测试程序包将生成类似以下内容的输出:
package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'
有关更多信息,请参阅 适用于安卓和 Device Farm 的仪AWS器。