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
相关文章
- mnist图片缺失 97%的像素,mnist add准确率84%;及15位的加法训练
- SPNS KNOW WHAT THEY DON’T KNOW
- Semantic Reasoning frameworks for robotic systems,A survey
- 这个异常检测效果
- Prometheus blackbox_exporter 探针
- Prometheus Alertmanager 告警集成(三)
- GB28181-2022注册注销基本要求、注册重定向解读和技术实现
- React-Hooks源码深度解读_2023-02-14
- 看透react源码之感受react的进化_2023-02-14
- 细说react源码中的合成事件_2023-02-14
- 从源码角度看React-Hydrate原理_2023-02-14
- 第02步《番外篇》第1章认识计算机世界第5课
- 第10步《前端篇》第3章完成交互功能第7课
- ChatGPT将取代设计师?
- 来来来,手摸手写一个hook_2023-02-14
- 一文搞懂基于 Sentinel Dashboard 进行接口限流
- 图文并茂带你解读 Kube-scheduler
- 一文搞懂基于 Helm 部署 Prometheus Stack 全家桶
- 一文搞懂基于 Kubescape 进行 Kubernetes 安全加固
- eBPF,一个颠覆容器监控的技术