MonkeyRunner ExceptionInInitializerError

来源:互联网 发布:美食专家软件注册码 编辑:程序博客网 时间:2024/06/05 16:49

#encoding utf-8

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi

device=mr.waitForConnection()
device.installPackage("../samples/android-14/ApiDemos/bin/ApiDemos.apk")
device.startActivity(component='com.example.android.apis/.ApiDemos')
result=device.takeSnapshot()
result.writeToFile('./snapshotbegin.png','png')

mr.sleep(5)

device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')
device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')
device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')
device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')
device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')

result=device.takeSnapshot()
result.writeToFile('./snapshotend.png','png')

imageTrue=mr.loadImageFromFile('./snapshotbegin.png')
test=imageTrue.sameAs(result)
mr.alert('%s'%test)

将以上代码存放在test.py文件中,在../sdk/tools/目录下打开cmd,执行monkeyrunner  test.py

前几天运行正常的程序,今天再执行却报错:

 

D:\ADT\adt-bundle-windows-x86-20131030\sdk\tools>monkeyrunnerD:\Work\py\test.py

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions] Script terminated due to anexception

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent calllast):

 File "D:\Work\py\test.py", line 10, in <module>

   result.writeToFile('./snapshotbegin.png','png')

       at javax.imageio.ImageIO.write(ImageIO.java:1467)

       at javax.imageio.ImageIO.write(ImageIO.java:1521)

       atcom.android.chimpchat.core.ChimpImageBase.writeToFileHelper(ChimpImageBase.java:140)

       atcom.android.chimpchat.core.ChimpImageBase.writeToFile(ChimpImageBase.java:86)

       at com.android.monkeyrunner.MonkeyImage.writeToFile(MonkeyImage.java:84)

       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

       at java.lang.reflect.Method.invoke(Method.java:597)

 

java.lang.ExceptionInInitializerError:java.lang.ExceptionInInitializerError

 

140120 15:49:31.226:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyException.fillInStackTrace(PyException.java:70)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.lang.Throwable.<init>(Throwable.java:181)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.lang.Exception.<init>(Exception.java:29)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.lang.RuntimeException.<init>(RuntimeException.java:32)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyException.<init>(PyException.java:46)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at org.python.core.PyException.<init>(PyException.java:43)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.Py.JavaError(Py.java:495)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at org.python.core.Py.JavaError(Py.java:488)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:188)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]    atorg.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyObject.__call__(PyObject.java:422)

140120 15:49:31.226:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyObject.__call__(PyObject.java:426)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyMethod.__call__(PyMethod.java:139)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.pycode._pyx0.f$0(D:\Work\py\test.py:26)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at org.python.pycode._pyx0.call_function(D:\Work\py\test.py)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyTableCode.call(PyTableCode.java:165)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at org.python.core.PyCode.call(PyCode.java:18)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.Py.runCode(Py.java:1275)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at org.python.core.__builtin__.execfile_flags(__builtin__.java:522)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.util.PythonInterpreter.execfile(PythonInterpreter.java:225)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atcom.android.monkeyrunner.ScriptRunner.run(ScriptRunner.java:116)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atcom.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter.java:77)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atcom.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:189)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]Caused by: java.lang.ExceptionInInitializerError

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjavax.imageio.ImageIO.write(ImageIO.java:1467)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at javax.imageio.ImageIO.write(ImageIO.java:1521)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atcom.android.chimpchat.core.ChimpImageBase.writeToFileHelper(ChimpImageBase.java:140)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atcom.android.chimpchat.core.ChimpImageBase.writeToFile(ChimpImageBase.java:86)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atcom.android.monkeyrunner.MonkeyImage.writeToFile(MonkeyImage.java:84)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

140120 15:49:31.226:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.lang.reflect.Method.invoke(Method.java:597)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atorg.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     ... 14 more

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]Caused by:java.lang.IllegalArgumentException: Can't load standard profile: GRAY.pf

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.awt.color.ICC_Profile$2.run(ICC_Profile.java:894)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.security.AccessController.doPrivileged(Native Method)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.awt.color.ICC_Profile.getStandardProfile(ICC_Profile.java:887)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:858)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjava.awt.color.ColorSpace.getInstance(ColorSpace.java:315)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjavax.imageio.ImageTypeSpecifier$Grayscale.<init>(ImageTypeSpecifier.java:700)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     at javax.imageio.ImageTypeSpecifier.createGrayscale(ImageTypeSpecifier.java:781)

140120 15:49:31.226:S [main][com.android.monkeyrunner.MonkeyRunnerOptions]     atjavax.imageio.ImageTypeSpecifier.<clinit>(ImageTypeSpecifier.java:140)

140120 15:49:31.226:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]     ... 24 more

 

D:\ADT\adt-bundle-windows-x86-20131030\sdk\tools>


经查出错的地方是

result=device.takeSnapshot()
result.writeToFile('./snapshotbegin.png','png')


请教了几个同事,尚远同学指出关键的错误提示“Caused by:java.lang.IllegalArgumentException: Can't load standard profile: GRAY.pf”,搜了一下有人说是jdk有问题,重装一下就好了。另外参考了http://blog.csdn.net/half_human55/article/details/3988438 ,最终发现是由于我的jdk路径下../jre/lib/cmm下面是空的,从同事那里拷了整个文件夹过来就好了


0 0