在viewclient.py中传递uiautomator转发时出错

时间:2013-05-16 04:45:10

标签: monkeyrunner androidviewclient

运行viewclient时,我的命令低于exept。我在使用android-17 api的模拟器上运行它。

viewclient = ViewClient(device, serialno)
File "/Users/dpbuild/Jenkins/workspace/AndroidViewer-FeatureBranch-UIAutomation/siamang/src/dtmilano/android/viewclient.py", line 948, in __init__
self.dump()
File "/Users/dpbuild/Jenkins/workspace/AndroidViewer-FeatureBranch-UIAutomation/siamang/src/dtmilano/android/viewclient.py", line 1478, in dump
self.setViewsFromUiAutomatorDump(received)
File "/Users/dpbuild/Jenkins/workspace/AndroidViewer-FeatureBranch-UIAutomation/siamang/src/dtmilano/android/viewclient.py", line 1251, in setViewsFromUiAutomatorDump
self.__parseTreeFromUiAutomatorDump(received)
File "/Users/dpbuild/Jenkins/workspace/AndroidViewer-FeatureBranch-UIAutomation/siamang/src/dtmilano/android/viewclient.py", line 1405, in _ViewClient__parseTreeFromUiAutomatorDump
self.root = parser.Parse(receivedXml)
File "/Users/dpbuild/Jenkins/workspace/AndroidViewer-FeatureBranch-UIAutomation/siamang/src/dtmilano/android/viewclient.py", line 832, in Parse
parserStatus = parser.Parse(uiautomatorxml, 1) #@UnusedVariable
File "/Tools/android-sdk-macosx/tools/lib/jython.jar/Lib/xml/parsers/expat.py", line 212, in Parse
xml.parsers.expat.ExpatError: XML document structures must start and end within the same entity.

通过添加如下的打印声明来查看uiautomatorxml:

def Parse(self, uiautomatorxml):
# Create an Expat parser
parser = xml.parsers.expat.ParserCreate()
# Set the Expat event handlers to our methods
parser.StartElementHandler = self.StartElement
parser.EndElementHandler = self.EndElement
parser.CharacterDataHandler = self.CharacterData
# Parse the XML File
**print "DEBUG: " + uiautomatorxml**
parserStatus = parser.Parse(uiautomatorxml, 1) #@UnusedVariable
return self.root

我知道了,

DEBUG :( XML文件以正常方式启动,下面是打印日志的尾端)

<node index="1" text="" class="android.view.View" package="com.android.launcher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="true" long-clickable="false" password="false" selected="false" bounds="[0,25][800,1232]"><node index="2" text="" class="android.view.View" package="com.android.launcher" content-desc="Home screen 3" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focus

130515 19:41:07.014:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]脚本因异常而终止

显然,XML还没有完全形成。我想知道你是否有任何关于为什么会发生这种情况的想法以及如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

我猜它是因为UIAutomation返回的内容太长了。因为我收到了同样的消息,但当我找到一个小视图页面并且运行时我认为ViewClient运行良好..所以我猜错了套接字消息并没有以完全不透明的方式结束...

答案 1 :(得分:0)

对我而言,这与我运行模拟器的机器的性能有关。通过启用硬件加速和拥有1GB显卡的计算机,我能够解决这个问题。

启用硬件加速的步骤:

  • 在模拟器中检查“使用主机gpu”。
  • 下载并安装英特尔 HAXM。