【问题标题】:Android can't run UI Testing with "uiautomator: permission denied" error messageAndroid 无法运行 UI 测试并显示“uiautomator:权限被拒绝”错误消息
【发布时间】:2023-04-02 01:15:01
【问题描述】:

我的环境是:

Android 手机:HTC Desired Z

安卓版本:2.3.3

当我使用网络方法时:http://developer.android.com/tools/testing/testing_ui.html

使用命令“adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings”运行 UI 测试

它显示错误消息“uiautomator:权限被拒绝”。

哪位朋友告诉我错误原因???

谢谢!~

【问题讨论】:

  • 您运行的是制造商的原始固件吗?或者你是否在你的设备上加载了一个 ROM 模组?
  • 是的,我运行的是制造商提供的原始固件。它已将 rom mod 加载到我的设备上。
  • @DanielHsu,您是否设法在 v2.3.3 上运行 UI 测试?你能请,分享如何。单击 uiautomatorview 上的快照按钮时,出现错误“uiautomator 需要运行 api 级别 16 的设备”。我已经连接了一个运行 v2.3.6 的设备,并且在开发系统上安装了 sdk api v17。

标签: android android-uiautomator


【解决方案1】:

请您仔细检查几件事?

  • 您要将测试部署到哪个版本的 Android? UIAutomator 仅在 API 级别 16 或更高版本(Android 4.1 和 4.2)的设备上可用,因此它不应该在 2.3.3 设备上可用。在命令行上运行以下命令以获取安装的 Android 版本:adb shell grep ro.build.version.sdk= system/build.prop 结果应该类似于 ro.build.version.sdk=17 这是 StackOverflow 关于使用 adb shell 获取 Android 版本的文章 Getting Android SDK version of a device from command line
  • 当您运行adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings 命令时,您得到的确切错误消息是什么?

我使用运行 2.3.3(API 级别 10)的 AVD 进行了测试,并运行命令来构建、部署,然后运行来自 http://developer.android.com/tools/testing/testing_ui.html 的 Android 示例中的 UI Automator 测试我得到的错误消息与那个不同你报告:我得到uiautomator: not found而不是permission denied。

作为建议,当您的设备已连接时,尝试从命令行运行uiautomatorviewer(您可以使用adb devices 命令检查 - 应该列出您设备的序列号)。当我尝试使用 2.3.3 对 AVD 运行 uiautomatorviewer 时,当我尝试获取屏幕快照时,它明确告诉我“UI Automator 需要具有 API 级别 16 的设备”

因此,总而言之,AFAIK 您需要带有运行 API 级别 16 或更高版本的设备的 uiautomator。实际上,UI Automator 在 API 级别 16(Android 4.1)上似乎存在问题,并且在运行 Android 4.2.1(API 级别 17)的设备上效果最佳。

【讨论】:

  • Daniel,我看不到您的命令 :( 但是,我实际上对您在运行命令后得到的确切错误消息更感兴趣。另外,您可以从命令行运行以下命令吗?在此处添加结果?adb shell grep ro.build.version.sdk= system/build.prop 答案应该类似于ro.build.version.sdk=17 - 最终数字将取决于您在设备上安装的 Android 版本。
  • @JulianHarty,正如您所提到的,您已经在运行 2.3.3 的 AVD 上对其进行了测试。您是否在运行 2.3.3 的真实设备上尝试过?我收到一个错误“uiautomator 需要运行 api 级别 16 的设备”,尽管开发系统上有 api 级别 17。 android doc 表示它需要 SDK Tools v21 或更高版本以及 Platform SDK API v16 或更高版本。但与设备版本无关。可以在运行低于 api v16 的设备上完成吗?
  • Dexter,我相信设备需要相同的平台 SDK 最低版本,即 v16 或更高版本。我相信我只是尝试使用旧版本的 Android 来帮助了解所报告的问题。我没想到它会工作,即我没有也仍然不希望 UI Automator 在任何运行 Android 2.x 的设备上工作。
猜你喜欢
  • 2013-12-01
  • 2016-05-10
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多