MonkeyRunner NoClassDefFoundError: com/android/chimpchat/ChimpChat

MonkeyRunner NoClassDefFoundError: com/android/chimpchat/ChimpChat

我在尝试 运行 MonkeyRunner.bat 时遇到异常。
我只找到了 this solution,但它太老了,没有成功。

控制台线路:

mymonkeyrunner test.py

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/android/chimpchat/ChimpChat
        at com.android.monkeyrunner.MonkeyRunnerStarter.<init>(MonkeyRunnerStarter.java:60)
        at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:188)
Caused by: java.lang.ClassNotFoundException: com.android.chimpchat.ChimpChat
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 2 more

发表评论后不久,我想通了。修复 Chimp 问题后,Monkeyrunner 无法找到更多的库。最后,似乎更容易做到以下几点:

您可能将 $ANDROID_SWT 设置为类似 sdk_dir\tools\lib\x86_64 的值。将 ANDROID_SWT\swt.jar 复制到 sdk_dir\tools\lib,然后将 $ANDROID_SWT 设置为 sdk_dir\tools\lib

解决此问题后,我遇到了 Monkeyrunner 找不到 adb 的问题。为此,我不得不将 monkeyrunner.bat 中的最后一行替换为

call "%java_exe%" -Xmx512m "-Djava.ext.dirs=%frameworkdir%;%swt_path%" -Dcom.android.monkeyrunner.bindir=..\framework -jar %jarpath% %*

call "%java_exe%" -Xmx512m "-Djava.ext.dirs=%frameworkdir%;%swt_path%" -Dcom.android.monkeyrunner.bindir=..\..\platform-tools -jar %jarpath% %*

基本上,确保 -Dcom.android.monkeyrunner.bindir 指向 adb.exe 所在的位置。现在好像可以用了。