我正在努力对android框架层进行一些更改并构建我自己的版本。我正在基于froyo工作并尝试使用monkeyrunner进行一些测试。我已经拉动了源代码并且可以在模拟器中构建和运行但是当我尝试使用monkeyrunner脚本时,我似乎无法工作。我使用午餐full-eng构建了代码,它在设备上运行良好。我只是试图根据下面显示的http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html示例运行一个简单的脚本,添加一个print语句,看看我是否可以运行任何东西。
/# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
/# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
print "Hello World!"
如果脚本中有以下行,我会收到如下错误。
来自com.android.monkeyrunner的导入MonkeyRunner,MonkeyDevice
追踪(最近一次通话): 文件“../../MRTesting/MyTest.py,第4行,in 来自com.android.monkeyrunner导入MonkeyRunner,MonkeyDevice ImportError:无法导入名称MonkeyDevice
因此,如果我从导入中删除MonkeyDevice,如下所示,我在调用waitForConnection()时会遇到不同的错误
来自com.android.monkeyrunner导入MonkeyRunner
追踪(最近一次通话): 文件“../../MRTesting/MyTest.py,第6行,in device = MonkeyRunner.waitForConnection() AttributeError:类型对象'com.android.monkeyrunner.MonkeyRunner'没有属性'waitForConnection'
我尝试修改调用以获得如文档中所示的一些参数,但我仍然得到相同的错误。第二个参数匹配对adb设备的调用返回的值。
device = MonkeyRunner.waitForConnection(5, 'emulator-5554')
我已经做了一些挖掘,有一个人说shebang需要在文件的开头如下,修改路径以避免将信息放入我宁愿不分享。
/#! /home/<path>/monkeyrunner
我无法看到这与我直接从命令行调用monkeyrunner有什么不同,但我尝试了它,没有运气。我没有在我的系统上的任何地方安装sdk,因为它包含在构建树中,但在我看来,monkeyrunner工具可能无法根据需要找到它,但我找不到任何指示如何解决这个问题。当我从根目录的构建目录中构建系统时,我正在运行以下命令。
. build/envsetup.sh
setpaths
lunch full-eng
make -j16
有人对此有任何想法吗?