问题定位
对应报错 com.android.compatibility.common.deviceinfo 对应在CTS里的应用为CtsDeviceInfo.apk
E/AaptParser: aapt2 dump badging stderr: error: illegal map type 'configVarying' (7).
/home/android/gms/CTS/13-r4/android-cts-13_r4-linux_x86-arm/android-cts/tools/../../android-cts/testcases/CtsContentTestCases/arm64/CtsContentTestCases.apk: error: failed to parse value for resource android.content.cts:configVarying/bag (0x7f070000) with configuration ''.
06-08 17:54:46 E/AaptParser: Failed to run aapt2 on /home/android/gms/CTS/13-r4/android-cts-13_r4-linux_x86-arm/android-cts/tools/../../android-cts/testcases/CtsContentTestCases/arm64/CtsContentTestCases.apk. stdout:
06-08 17:54:46 E/ModuleDefinition: Unexpected Exception from preparer: com.android.tradefed.targetprep.suite.SuiteApkInstaller
06-08 17:54:46 E/ModuleDefinition: AaptParser failed for file CtsContentTestCases.apk. The APK won't be installed [8XU8UCDYXGUOCIWW att:u6080aa TP1A.220624.014]
com.android.tradefed.targetprep.TargetSetupError[AAPT_PARSER_FAILED|520050|DEPENDENCY_ISSUE]: AaptParser failed for file CtsContentTestCases.apk. The APK won't be installed [8XU8UCDYXGUOCIWW att:u6080aa TP1A.220624.014]
at com.android.tradefed.targetprep.TestAppInstallSetup.parsePackageName(TestAppInstallSetup.java:741)
at com.android.tradefed.targetprep.TestAppInstallSetup.resolveApkFiles(TestAppInstallSetup.java:627)
at com.android.tradefed.targetprep.TestAppInstallSetup.setUp(TestAppInstallSetup.java:410)
at com.android.tradefed.testtype.suite.ModuleDefinition.runPreparerSetup(ModuleDefinition.java:999)
at com.android.tradefed.testtype.suite.ModuleDefinition.runTargetPreparation(ModuleDefinition.java:1432)
at com.android.tradefed.testtype.suite.ModuleDefinition.runPreparation(ModuleDefinition.java:958)
at com.android.tradefed.testtype.suite.ModuleDefinition.run(ModuleDefinition.java:484)
at com.android.tradefed.testtype.suite.ITestSuite.runSingleModule(ITestSuite.java:937)
at com.android.tradefed.testtype.suite.ITestSuite.run(ITestSuite.java:817)
at com.android.tradefed.invoker.InvocationExecution.runTest(InvocationExecution.java:1336)
at com.android.tradefed.invoker.InvocationExecution.runTests(InvocationExecution.java:1115)
at com.android.tradefed.invoker.TestInvocation.prepareAndRun(TestInvocation.java:617)
at com.android.tradefed.invoker.TestInvocation.performInvocation(TestInvocation.java:275)
at com.android.tradefed.invoker.TestInvocation.invoke(TestInvocation.java:1335)
at com.android.tradefed.command.CommandScheduler$InvocationThread.run(CommandScheduler.java:678)
06-08 17:54:46 E/ModuleDefinition: Some preparation step failed. failing the module arm64-v8a CtsContentTestCases[instant]
根据报错信息可知和AAPT2有关系,需要更新AAPT2
问题处理
aapt和aapt2 默认路径在/home/android/WorkSpace/tool/Android/Sdk/build-tools/XXX/下 也是根据版本走的。但是SDK更新很慢,里面的aapt2不会是最新的。在官网文档developer.android.google.cn/studio/comm… 也有提到,文档中也提到了如何下载,但是里面的下载链接(google maven)无法跳转。
从 Google Maven下载AAPT2
Google Maven地址为:maven.google.com/web/index.h…
- 进入Google Maven,依次前往 com.android.tools.build > aapt2
- 找到最新的版本,例如:8.0.2-9289358
- 拼接下载地址 下载地址,需要确定2个因素,1. 版本 ;2 当前PC系统[windows | linux | osx]。 例如 dl.google.com/dl/android/…
以linux下需要下载最新版本8.0.2-9289358为例,则最终的下载链接为 dl.google.com/dl/android/…
- 输入下载链接后,解压下载文件即可获取到对应的aapt2文件