获取UI层次结构错误获取UI层次结构XML文件时出错:com.android.ddmlib.SyncException:远程对象不存在

时间:2016-10-24 08:57:03

标签: android xml testing adb uiautomator

我正在使用adb测试我的应用,但是当我执行“uiautomator的转储视图层次结构”时出现此错误:

  

获取UI层次结构XML时获取UI层次结构错误   file:com.android.ddmlib.SyncException:远程对象不存在!

我的adb版本是1.0.36,我的Android版本是6.0.1。

只有在界面中存在动态元素时才会启动此错误。

提前谢谢。

12 个答案:

答案 0 :(得分:12)

最好的方法是杀死adb服务器并重新启动它。

  • sudo adb kill-server
  • sudo adb start-server

这样就可以了。

答案 1 :(得分:9)

目前,您的UI需要在Accessibility Events能够生成UI层次结构转储之前至少1000毫秒处于空闲状态(如未发送AccessibilityService)。

如果您尝试运行adb shell uiautomator dump,它会为您提供ERROR: could not get idle state.

答案 2 :(得分:7)

即使已经很晚了,我还是在这里发表观察。即使我遇到了这个问题。在从UI Automator拍摄屏幕截图之前,终止appium服务器连接。然后尝试捕获屏幕截图。它工作正常。

答案 3 :(得分:4)

我意识到这是一个老帖子。但是,当我使用uiautomator控制模拟器进行自动化测试时,我注意到了相同的问题。在uiautomator控制了模拟器之后,似乎uiautomatorviewer并未连接到模拟器以截取屏幕截图。

我发现运行adb reconnect可以使uiautomatorviewer再次获取屏幕截图。

答案 4 :(得分:1)

尝试重启您的设备,这种情况对我来说是可行的。

答案 5 :(得分:0)

请关闭手机中的其他AccessibilityService。

答案 6 :(得分:0)

重新启动设备对我有用。

答案 7 :(得分:0)

我已经尝试了上述所有步骤,但没有一个没有用。原因是我尝试使用Appium打开应用程序后尝试运行uiautomatorviewer。每当我手动在设备上打开我的应用程序,然后运行uiautomatorviewer时,效果都很好。只是分享我的经验。谢谢

答案 8 :(得分:0)

如果您收到此错误

enter image description here

这意味着您的 UI Automator 已断开连接,要重新连接,您可以打开新终端,无需担心终端上的位置。

输入命令

adb reconnect

并再次尝试截取它应该可以工作的屏幕截图。

答案 9 :(得分:-1)

在设备或仿真器中,显示已打开的应用程序,然后将其全部关闭。 监视器应立即刷新自身并获取层次结构,就好像打开的一个应用程序遇到了麻烦。

答案 10 :(得分:-1)

下面从命令行执行的命令对我有用;

adb shell am force-stop com.android.ddmlib

答案 11 :(得分:-3)

在从“uiautomatorviewer”拍摄屏幕之前,请使用ctrl + C命令终止appium服务器连接。然后尝试捕获屏幕截图。它工作正常。

相关问题