前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android SDK 配置 monkeyrunner 遇到问题的解决办法

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

作者头像
卓越笔记
发布2023-02-18 16:22:06
7930
发布2023-02-18 16:22:06
举报
文章被收录于专栏:卓越笔记卓越笔记

问题 1

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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 前面加入

代码语言:javascript
复制
rem my change
set frameworkdir=%APP_HOME%\lib

问题 3

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

代码语言:javascript
复制
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 最后一条语句:

代码语言:javascript
复制
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 的注释命令),然后修改成

代码语言:javascript
复制
call "%java_exe%" -Xmx512m "-Djava.ext.dirs=%frameworkdir%;%swt_path%" -Dcom.android.monkeyrunner.bindir=..\..\platform-tools -jar %jarpath% %*

最后重新运行 

monkeyrunner

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-6-30 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题 1
  • 问题 1 的解决办法
  • 问题 2
  • 问题 2 的解决办法
  • 问题 3
  • 问题 3 的解决办法
  • 最后重新运行 
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档