0

问题:MonkeyDevice getViewIdList() 抛出 NullPointerException

我是如何得到错误的:

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

抛出java.lang.NullPointerException具有以下回溯的 a:

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 工具在 22.0.5,SDK 平台工具在 18.0.1)
  • 4.2.2 和 4.3 模拟器上的相同异常

我已经没有什么想法可以测试了,做一些谷歌搜索也没有结果。有任何想法吗?

4

1 回答 1

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)
于 2013-08-25T19:20:56.187 回答