MOS和UiAutomator的自动化问题

时间:2015-10-20 07:05:47

标签: uiautomator

我在APK中使用以下命令来调用基于UiAutomator的测试脚本:

proc = java.lang.Runtime.getRuntime().exec("uiautomator runtest Library.jar -c com.uia.example.my.Library");

直到LOS工作正常。 但在MOS中,我收到以下错误:

  

无法取消关联   /data/local/tmp/dalvik-cache/arm64/sdcard@data@Library.jar@classes.dex:   许可被拒绝

请为此问题提供解决方案。

注意:我需要在发布二进制文件中运行脚本。因此,根本不可能。

2 个答案:

答案 0 :(得分:1)

使用 Android测试支持库,并按照Testing UI for Multiple Apps中的说明创建一个扩展InstrumentationTestCase的测试用例。

然后使用

运行测试
$ ./gradlew connectedCheck

答案 1 :(得分:0)

问题是由于您放置Library.jar文件的/ data / local / tmp /中没有写权限。需要写入权限才能从Jar中提取dex。

可能是OEM可以禁用root权限并删除对/ data / local / tmp的写入权限,这可能是您在生产/发布版本中出现问题的原因..

如果您使用uiautomator命令,例如:uiautomator runtest Library.jar .... uiautomator默认会在/ data / local / tmp中搜索Library.jar。 您可以检查/ system / bin中存在的uiautomator shell脚本。 export run_base = / data / local / tmp ==>用于搜索dex文件的类路径。

一种解决方案是将Library.jar和修改后的uiautomator脚本放在应用程序文件夹(数据/数据//文件)中。 您必须使用应用程序数据文件夹路径修改run_base。

您可以按照以下链接中的内容捆绑uiautomator脚本和jar: http://gimite.net/en/index.php?Run%20native%20executable%20in%20Android%20App

希望它有所帮助......请更新您的结果。