回到顶部

Contents

Android SDK 配置 monkeyrunner 遇到问题的解决办法

问题 1

简单的理解,swt.jar 所在目录没有配置环境变量

C:\Users\yinzh>monkeyrunner
SWT folder '..\framework\x86_64' does not exist. 
Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.

问题 1 的解决办法

配置 ANDROID_SWT 的环境变量,swt.jar 在 %ANDROID_HOME%\tools\lib\x86_64 里面(ANDROID_HOME:C:\Users\yinzh\AppData\Local\Android\Sdk)

问题 2

简单的理解,找不到 monkeyrunner-26.0.0-dev.jar

C:\Users\yinzh>monkeyrunner
Error: Unable to access jarfile lib\monkeyrunner-26.0.0-dev.jar

问题 2 的解决办法

先设置 APP_HOME 的环境变量 %ANDROID_HOME%\tools\

然后找到 monkeyrunner.bat 的目录: C:\Users\yinzh\AppData\Local\Android\Sdk\tools\bin,复制一份 monkeyrunner.bat,再然后修改原来的 monkeyrunner.bat, 在  :JarFileOk 前面加入

rem my change
set frameworkdir=%APP_HOME%\lib

问题 3

简单的理解,在 ..\framework\ 目录下找不到 adb.exe

C:\Users\yinzh>monkeyrunner
05:34:07 E/adb: Cannot run program "..\framework\adb.exe": CreateProcess error=2, 系统找不到指定的文件。
Exception in thread "main" java.lang.IllegalArgumentException: java.io.IOException: Cannot run program "..\framework\adb.exe": CreateProcess error=2, 系统找不到指定的文件。
        at com.android.ddmlib.AndroidDebugBridge.<init>(AndroidDebugBridge.java:600)
        at com.android.ddmlib.AndroidDebugBridge.createBridge(AndroidDebugBridge.java:378)
        at com.android.chimpchat.adb.AdbBackend.<init>(AdbBackend.java:69)
        at com.android.chimpchat.ChimpChat.createBackendByName(ChimpChat.java:78)
        at com.android.chimpchat.ChimpChat.getInstance(ChimpChat.java:51)
        at com.android.monkeyrunner.MonkeyRunnerStarter.<init>(MonkeyRunnerStarter.java:60)
        at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:188)
Caused by: java.io.IOException: Cannot run program "..\framework\adb.exe": CreateProcess error=2, 系统找不到指定的文件。
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at com.android.ddmlib.AndroidDebugBridge$1.run(AndroidDebugBridge.java:658)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:453)
        at java.lang.ProcessImpl.start(ProcessImpl.java:140)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        ... 2 more

问题 3 的解决办法

monkeyrunner.bat 最后一条语句,绑定了 adb 的目录 Dcom.android.monkeyrunner.bindir=..\framework,但是这个目录(..\framework)不存在或者存在没有我们的 adb.exe,所以我们只要修改下这个目录就可以找到 adb.exe

 monkeyrunner.bat 最后一条语句:

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

已知:adb.exe 在 C:\Users\yinzh\AppData\Local\Android\Sdk\platform-tools,即相对于 monkeyrunner.bat 的上上级的 platform-tools 文件才能找到 adb.exe
找到 monkeyrunner.bat 的目录: C:\Users\yinzh\AppData\Local\Android\Sdk\tools\bin,修改问题 2 已修改的 monkeyrunner.bat,把最后一句复制后在注释掉(rem 是 bat 的注释命令),然后修改成

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

最后重新运行 

monkeyrunner


^_^
请喝咖啡 ×

本作品由 卓越笔记 采用 知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议 进行许可

前一篇: 通达信电脑版(windows)主图添加地域、行业、概念、风格等信息步骤
captcha