小编jju*_*ung的帖子

NoClassDefFoundError:com/google/common/base /在Jython中导入MonkeyRunner时的谓词

我想使用MonkeyRunner生成MotionEvent(来自屏幕触摸).我已经阅读了http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html上的信息 .

问题是这个jython程序:

from com.android.monkeyrunner import MonkeyRunner

if __name__ == '__main__':
   # Connects to the current device, returning a MonkeyDevice object
   device = MonkeyRunner.waitForConnection()
Run Code Online (Sandbox Code Playgroud)

执行时出现以下错误:

Traceback (most recent call last):
  File "C:\Documents and Settings\jjungb00\python\workspace\monkey\src\runner.py",     line 6, in <module>
    from com.android.monkeyrunner import MonkeyRunner
java.lang.NoClassDefFoundError: com/google/common/base/Predicate

at com.android.monkeyrunner.MonkeyRunner.classDictInit(MonkeyRunner.java:48)

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)

at org.python.core.PyJavaType.init(PyJavaType.java:534)

at org.python.core.PyType.createType(PyType.java:1264)

at org.python.core.PyType.addFromClass(PyType.java:1201)

at org.python.core.PyType.fromClass(PyType.java:1291)
Run Code Online (Sandbox Code Playgroud)

...跳过一些堆栈跟踪...

Caused by: java.lang.ClassNotFoundException: com.google.common.base.Predicate

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at …
Run Code Online (Sandbox Code Playgroud)

android jython predicate monkeyrunner

2
推荐指数
1
解决办法
7941
查看次数

是否可以从adb调用ICS屏幕截图功能?

我需要能够进行屏幕转储测试,而ICS现在有一个屏幕截图功能,可以通过按下(并按住)音量调低和电源按钮来调用.有没有办法通过adb脚本化这个功能?(据我所知,它没有公共Java API).我试图使用java中的KeyEvent模拟电源和音量按钮,我试图使用adb keyevent和adb sendevent但没有成功.我怀疑电源按钮还会产生一些不是用上述方法生成的低级别调用.

那么有人知道是否可以从adb调用该函数?如果这是不可能的,有人知道源代码中的哪个屏幕截图功能存在?也许我可以通过阅读来解决问题.

更新

用于捕获屏幕的源代码位于名为screenCapture的函数中的"frameworks/base/services/surfaceflinger/services/surfaceflinger/SurfaceFlinger.cpp"中.我不知道是否有可能从jni调用它,但我会尝试,因为如果我可以通过java屏幕截图将会很棒.

否则,@ edthethird通过android.amberfog.com/?p=168获得了一个解决方案,可以使用命令行截取屏幕截图.

谢谢大家的帮助!

android screenshot adb android-4.0-ice-cream-sandwich

0
推荐指数
1
解决办法
5681
查看次数