该设备具有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数据。我不知道如何删除它。请建议
答案 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位置之外。