CTS测试运行其他版本的APK

时间:2018-04-23 05:56:10

标签: android cts

该设备具有AP级别为26的sdk,并且CTS测试也为26级。但是在运行命令时>运行cts-java面临的错误:

java.lang.RuntimeException:com.android.tradefed.targetprep.TargetSetupError:无法在00002474上安装CtsLibcoreTestCases.apk。原因:'INSTALL_FAILED_OLDER_SDK:installPackageLI期间解析失败:/data/app/vmdl1133462583.tmp/base.apk (在二进制XML文件行#0):需要更新的sdk版本#27(当前版本是#26)'

到目前为止的调查: 查找apk版本:

$ aapt dump badging~ / CTS / android-cts / testcases / CtsLibcoreTestCases.apk package:name ='android.libcore.cts'versionCode ='26'versionName ='8.0.0'platformBuildVersionName ='8.0.0' sdkVersion:'26' targetSdkVersion:'26'

查找设备sdk版本: $ adb shell getprop ro.build.version.sdk 26

没有冲突,但仍然存在错误。我的预感是设备或cts临时目录已存储以前的apk数据。我不知道如何删除它。请建议

1 个答案:

答案 0 :(得分:0)

您解决了这个问题吗? 我遇到了同样的情况,发现以下未记录的行为,请参见波纹管

背景

在我之前测试基于Android 8.1 (SDK #27)的设备时,我在文件夹下组织了相应的CTS和VTS测试,例如TRADFED,然后放在同一父文件夹CTS下以测试Android 8.0 (SDK #26)设备,并且由于不匹配的SDK版本而遇到相同的问题。 我的结构看起来像这样:

--TRADFED
  |-- android-cts
  |-- android-cts-media-1.4
  |-- android-cts-verifier
  `-- android-vts_81

调查

事实证明,CTS正在从其父目录(TRAFED)扫描整个目录结构以查找测试APK,而VTS在Cts*.apk子文件夹下包含相同的testcases尝试从VTS而非自己的CTS位置安装这些文件。

总结

CTS看起来非常自私且具有侵略性,并且会扫描整个父文件夹以查找任何合适的Cts*.apk应用程序,而不管其完全位于CTS位置之外。