NoClassDefFoundError: com / google / common / base / Predicate при импорте MonkeyRunner в Jython - PullRequest
2 голосов
/ 07 октября 2011

Я хочу использовать 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()

При выполнении я получаю следующую ошибку:

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)

... пропуская некоторую трассировку стека ...

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 java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

...

Я добавил monkeyrunner.jar из android sdk tool / lib в качестве внешней библиотеки. Я работаю на XP, с Jython 2.5.2.

Есть идеи, что делать? Думаю, мне нужно добавить еще одну библиотеку, но я не знаю, где и где.

1 Ответ

9 голосов
/ 07 октября 2011

Вам необходимо добавить библиотеку Google Collections - в настоящее время переименованную в Guava. Найдите файл guavalib.jar в каталоге Android SDK.

...