在 android 自动化测试过程中:
automationTest{
install_app();
do_test();
uninstall_app();
}
对于一台测试手机,需要不断的安装被测包,跑测试,卸载测试包,这样执行下去。
在安装包的时候,不知道各位有没有遇到 INSTALL_FAILED_UID_CHANGED 此类错误?
症状如下:
在网上也搜了不少此类问题的解决办法,得到的解决办法如下:
应用在上次卸载时,由于应用中的 native 程序未被杀死而占用/data/data/{packageName}目录,导致/data/data/目录下的 APP 相关内容未被删除,多数情况下能在 logcat 中找到报错:Installer: rm -rf failed, directory is not empty。再次安装时无法覆盖,导致报出此类问题。
解决方法:如果设备 Root 了,则直接删除/data/data/目录下的应用包名文件夹;如果没有 root,需要将手机恢复出厂设置。
但如果需要自动化解决此类问题,才可以让整个自动化流程连起来,各位有什么高招么