MonkeyDevice getViewIdList()抛出NullPointerException

时间:2013-08-21 18:20:27

标签: android monkeyrunner

问题:MonkeyDevice getViewIdList()抛出NullPointerException

我是如何得到错误的:

# Retyped, not copied, excuse typos.
$ monkeyrunner
>>> from com.android.monkeyrunner import MonkeyDevice, MonkeyRunner
>>> device = MonkeyRunner.waitForConnection()
>>> device.getViewIdList()

使用以下追溯投掷java.lang.NullPointerException

at com.android.chimpchat.ChimpManager.parseResponseforExtra(ChimpManager.java:216)
at com.android.chimpchat.ChimpManager.listViewIds(ChimpManager.java:392)
at com.android.chimpchat.adb.AdbChimpDevice.getViewIdList(AdbChimpDevice.java:604)
at com.android.monkeyrunner.MonkeyDevice.getViewIdList(MonkeyDevice.java:383)
... # Reflection stuff ...

我要解决的问题:

  • 将SDK更新到最新版本(SDK Tools at 22.0.5,SDK Platform Tools at 18.0.1)
  • 4.2.2和4.3仿真器上的相同例外

我已经没有想法进行测试,并且做了一些Google搜索。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这实际上是因为

device = MonkeyRunner.waitForConnection()
即使连接不成功,

也不会返回错误或异常。

您可以使用AndroidViewClient/culebra使用的相同技术检测waitForConnection()之后是否已完成连接:

 try:
     device.wake()
 except java.lang.NullPointerException, e:
     print >> sys.stderr, "%s: ERROR: Couldn't connect to %s: %s" % (progname, serialno, e)
     sys.exit(3)