首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >monkeyrunner的takeSnapshot()错误

monkeyrunner的takeSnapshot()错误
EN

Stack Overflow用户
提问于 2011-10-19 16:46:51
回答 1查看 2.6K关注 0票数 5

我正在测试monkeyrunner,并使用下面的.py文件进行截图。

生成了截图图像,但有时在"resulet = device.takeSnapshot()“中出现错误

我不知道有什么问题。我已经用Eclipse对其进行了测试。(Eclipse -> AVD,皮肤WVGA854)

请帮帮我~谢谢~

代码语言:javascript
复制
    # Imports the monkeyrunner modules used by this program
    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

    # Connects to the current device, returning a MonkeyDevice object
    device = MonkeyRunner.waitForConnection()

    # Installs the Android package. Notice that this method returns a boolean, so you can test
    # to see if the installation worked.
    #device.installPackage('D:\\study_java\\monkeyrunner\\HelloAndroid.apk')

    # sets a variable with the package's internal name
    package = 'com.example.helloandroid'

    # sets a variable with the name of an Activity in the package
    activity = 'com.example.helloandroid.HelloAndroid'

    # sets the name of the component to start
    runComponent = package + '/' + activity

    # Runs the component
    device.startActivity(component=runComponent)

    # Takes a screenshot
    MonkeyRunner.sleep(0.5)
    result = device.takeSnapshot()
    # Writes the screenshot to a file
    result.writeToFile('D:\\study_java\\monkeyrunner\\screen_shot.png','png')

下面是错误日志。

代码语言:javascript
复制
    D:\study_java\monkeyrunner>monkeyrunner d:\study_java\monkeyrunner\monkeytest.py

    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] Unab
    le to take snapshot
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]java.
    io.IOException: EOF
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.ddmlib.AdbHelper.read(AdbHelper.java:643)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.ddmlib.AdbHelper.read(AdbHelper.java:616)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.ddmlib.AdbHelper.getFrameBuffer(AdbHelper.java:326)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.ddmlib.Device.getScreenshot(Device.java:270)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.monkeyrunner.adb.AdbMonkeyDevice.takeSnapshot(AdbMonkeyDevice.jav
    a:197)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.monkeyrunner.MonkeyDevice.takeSnapshot(MonkeyDevice.java:83)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at java.lang.reflect.Method.invoke(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyObject.__call__(PyObject.java:355)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyMethod.__call__(PyMethod.java:215)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyMethod.__call__(PyMethod.java:206)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyObject.__call__(PyObject.java:381)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyObject.__call__(PyObject.java:385)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.pycode._pyx0.f$0(d:\study_java\monkeyrunner\monkeytest.py:37)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.pycode._pyx0.call_function(d:\study_java\monkeyrunner\monkeytest.p
    y)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyTableCode.call(PyTableCode.java:165)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.PyCode.call(PyCode.java:18)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.Py.runCode(Py.java:1197)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.core.__builtin__.execfile_flags(__builtin__.java:538)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:156)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.monkeyrunner.ScriptRunner.run(ScriptRunner.java:116)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter.java:93)

    111019 16:47:17.000:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]
    at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:20
    3)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions] Scri
    pt terminated due to an exception
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]Trace
    back (most recent call last):
      File "d:\study_java\monkeyrunner\monkeytest.py", line 27, in <module>
        result.writeToFile('D:\\study_java\\monkeyrunner\\screen_shot.png','png')
            at com.android.monkeyrunner.MonkeyImage.writeToFile(MonkeyImage.java:85)

            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)

    java.lang.NullPointerException: java.lang.NullPointerException

    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyException.fillInStackTrace(PyException.java:70)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at java.lang.Throwable.<init>(Throwable.java:181)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at java.lang.Exception.<init>(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at java.lang.RuntimeException.<init>(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyException.<init>(PyException.java:46)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyException.<init>(PyException.java:43)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.Py.JavaError(Py.java:455)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.Py.JavaError(Py.java:448)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:177)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyObject.__call__(PyObject.java:355)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyMethod.__call__(PyMethod.java:215)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyMethod.__call__(PyMethod.java:206)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyObject.__call__(PyObject.java:414)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyObject.__call__(PyObject.java:418)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.pycode._pyx0.f$0(d:\study_java\monkeyrunner\monkeytest.py:37)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.pycode._pyx0.call_function(d:\study_java\monkeyrunner\monkeytest.p
    y)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyTableCode.call(PyTableCode.java:165)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyCode.call(PyCode.java:18)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.Py.runCode(Py.java:1197)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.__builtin__.execfile_flags(__builtin__.java:538)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:156)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at com.android.monkeyrunner.ScriptRunner.run(ScriptRunner.java:116)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at com.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter.java:93)

    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:20
    3)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]Cause
    d by: java.lang.NullPointerException
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at com.android.monkeyrunner.MonkeyImage.writeToFile(MonkeyImage.java:85)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at java.lang.reflect.Method.invoke(Unknown Source)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
    111019 16:47:17.000:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]
    ... 16 more

    D:\study_java\monkeyrunner>
EN

回答 1

Stack Overflow用户

发布于 2014-04-08 04:37:50

你问这个问题已经很久了,但不管怎样,答案还是在这里。当您尝试将屏幕截图保存到您指定的文件夹中时,您的代码会出现异常。如果您更改以下代码:

代码语言:javascript
复制
result.writeToFile('D:\\study_java\\monkeyrunner\\screen_shot.png','png')

进入:

代码语言:javascript
复制
result.writeToFile('D:/study_java/monkeyrunner/screen_shot.png','png')

那么你应该可以走了!如果你遇到任何其他问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7818737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档