xmperfect 发表于 2011-11-4 09:33:04

monkeyrunner简单示例的疑问

各位大侠,在网上搜到monkeyrunner的小示例

按照上面的说明,一步步实施,实施到device = MonkeyRunner.waitForConnection()时(我是已经打开了一个模拟器的)

命令行会提示


图片可能看不清,就是下面这段话:



Traceback (most recent call last):
File "<stdin>", line 1, in <module>
      at com.android.monkeyrunner.JythonUtils.createArgParser(JythonUtils.java
:117)
      at com.android.monkeyrunner.MonkeyRunner.waitForConnection(MonkeyRunner.
java:63)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)

java.lang.NullPointerException: java.lang.NullPointerException

请问,是不是环境配置方面的问题啊,这个错误提示,就跟我没打开模拟器时运行这个命令是一样的。
各位,帮帮忙啊!

monkeytest15 发表于 2011-11-7 23:28:42

例子是什么呢?能告知么?

xmperfect 发表于 2011-11-9 10:09:54

例子是什么呢?能告知么?
monkeytest15 发表于 2011-11-7 23:28 http://bbs.51testing.com/images/common/back.gif

http://www.51testing.com/html/59/n-242759.html

就是上面那个例子啊,终于等到有人回复了。。

执行到device = MonkeyRunner.waitForConnection()时(我是已经打开了一个模拟器的)

命令行提示如下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
      at com.android.monkeyrunner.JythonUtils.createArgParser(JythonUtils.java
:117)
      at com.android.monkeyrunner.MonkeyRunner.waitForConnection(MonkeyRunner.
java:63)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)

java.lang.NullPointerException: java.lang.NullPointerException

wj8106 发表于 2011-11-9 17:59:33

你的测试是在模拟器上做还是在物理手机上做?
感觉像是设备没有连接上。

xmperfect 发表于 2011-11-10 09:30:05

你的测试是在模拟器上做还是在物理手机上做?
感觉像是设备没有连接上。
wj8106 发表于 2011-11-9 17:59 http://bbs.51testing.com/images/common/back.gif

是在模拟器上,是设备没连接上,但是我已经打开一个模拟器了呀,那要怎么样连接设备啊

xmperfect 发表于 2011-11-10 09:30:25

你的测试是在模拟器上做还是在物理手机上做?
感觉像是设备没有连接上。
wj8106 发表于 2011-11-9 17:59 http://bbs.51testing.com/images/common/back.gif

是在模拟器上,是设备没连接上,但是我已经打开一个模拟器了呀,那要怎么样连接设备啊

yyuanxiang 发表于 2011-11-11 23:15:58

你把路径切换到tools目前下执行看看,不要在monkeyrunner命令行下执行

xmperfect 发表于 2011-11-14 09:56:20

你把路径切换到tools目前下执行看看,不要在monkeyrunner命令行下执行
yyuanxiang 发表于 2011-11-11 23:15 http://bbs.51testing.com/images/common/back.gif

不在monkeyrunner命令行下执行,会提示命令不正确啊

我就是按照这个步骤来的
  1. 用Elipse打开andorid的模拟器或者在CMD中用andorid命令打开模拟器,如下:  D:\Software\Android SDK2.3\android-sdk-windows\tools>emulator -avd AVD2.3.3  Comments: 定位到android SDK的路径下的tools目录,运行上面这个命令。“AVD2.3.3”是我的模拟器的名字,这个命令是每个人自己命名的,用的时候需改成实际的名字。  2. 这个时候,如果一切正常的话,模拟器应该可以启动起来了。(运行monkeyrunner之前必须先运行相应的模拟器,不然monkeyrunner无法连接设备。这点很多教程上都没有说,我也试了好多次才明白过来)。接着,我们打开另一个CMD窗口(前一个不要关),还是定位到tools目录,输入命令"monkeyrunner",回车,将进入shell命令交互模式。  好了,接下来就可以导入monkeyrunner所要使用的模块了。当然是我们的"From...import..."  直接在shell命令中输入: from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice回车  OK,这步完成之后,我们就可以开始和模拟器“勾兑”了,哈哈,命令如下:  device = MonkeyRunner.waitForConnection()  没有报错的话,就代表和模拟器勾兑成功,我们可以接着“骚扰”它了。接下来,我们可以在里面装点东西了。输入如下命令,并传入你的apk所在相对路径即可。我这安装的是著名的ApiDemos。成功了会返回true。如果没有返回true,一般都是语法错误或者你传入的相对路径有问题,仔细检查下就没问题了。  device.installPackage("../samples/android-10/ApiDemos/bin/Apidemos.apk")  接下来,我们就可以启动其中的任意activity了,只要传入package和activity名称即可。命令如下:  device.startActivity(component = "com.example.android.apis/com.example.android.apis.ApiDemos")  此时模拟器会自动打开ApiDemos这个应用程序的主页。

zered 发表于 2011-12-12 15:30:27

回复 8# xmperfect


    device = MonkeyRunner.waitForConnection()
括号内 要输入你的设备名称 可以用adb devices 查看

doctman 发表于 2012-1-16 15:53:28

好像应该是
device = MonkeyRunner.waitForConnection(1.0,'AVD2.3.3')
第一个参数是设备数量,第二个参数是设备名~

summercc2008 发表于 2012-12-17 17:35:21

我也遇到一样的问题,一模一样,同事的电脑,windows7和XP 上都是正常的。我的也是Windows7.我实在找不出原因。
device = MonkeyRunner.waitForConnection(1.0,'AVD2.3.3')如果只有一台模拟器设备,不需要加名字吧

summercc2008 发表于 2012-12-18 10:28:48

我也遇到一样的问题,一模一样,同事的电脑,windows7和XP 上都是正常的。我的也是Windows7.我实在找不出原 ...
summercc2008 发表于 2012-12-17 17:35 http://bbs.51testing.com/images/common/back.gif


我遇到的这个问题终于解决了,我的JDK版本太低了,是1.5的,同事让我换成1.6的,再未报错。多些我的同事

ingwlhot0801 发表于 2013-1-7 10:53:23

回复 11# summercc2008

如果模拟器的话,且开启1个,是不需要加设备名称的,默认为空即可指向该模拟器
如果是手机设备的话,应该要指向手机设备

ingwlhot0801 发表于 2013-1-7 10:54:36

回复 12# summercc2008

原来如此,学习了:handshake

qiqi744 发表于 2014-7-13 22:56:30

为什么只能启动主Activity?不能启动任意的acivity?
页: [1]
查看完整版本: monkeyrunner简单示例的疑问