2

当从 Windows Android SDK 运行 monkeyrunner.bat 时,它会抛出一个异常来寻找一个带有 IP 地址和端口号的 MonkeyServer,该 IP 地址和端口号应该作为参数输入到 bat 脚本中。我用谷歌搜索搜索了互联网,并查看了 monkeyrunner 上的 Android 开发人员文档,但找不到对这个神秘服务器的任何引用。

这是抛出的异常:

130830 00:24:51.664:I [main] [com.android.chimpchat.ChimpManager] Monkey Command: wake.
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice] Error starting command: monkey --port 12345
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]com.android.ddmlib.ShellCommandUnresponsiveException
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at com.android.ddmlib.Device.executeShellCommand(Device.java:435)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at com.android.chimpchat.adb.AdbChimpDevice$1.run(AdbChimpDevice.java:104)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
130830 00:24:54.703:I [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]  at java.lang.Thread.run(Thread.java:662)

monkeyrunner.bat 的使用说明了这一点:

Usage: monkeyrunner [options] SCRIPT_FILE

    -s      MonkeyServer IP Address.
    -p      MonkeyServer TCP Port.
    -v      MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFF)

有谁知道神秘服务器和神秘IP地址/TCP端口???特别是,我想知道 MonkeyServer 是什么,它的用途是什么,如果我想运行一个,我会运行什么,我会在哪里运行它以及如何运行它。关于日志记录级别的任何启示也会很有用,但可能的级别参数大多是不言而喻的,尽管我确实发现 FINEST、FINER 和 FINE 令人着迷。

4

3 回答 3

1

经过多次轻微的恶化,看到这个问题并且很少看到它,我发现所谓的 MonkeyServer 实际上是 ADB(Android 调试桥)守护程序,由于某种完全无法解释的原因,当 monkeyrunner 抛出异常时它没有启动.

ADB 守护进程应该在monkeyrunner 启动时自动启动。也可以手动启动。此外,您可以将 ADB 的地址和端口号从其默认值移至任何您想要的位置,然后在启动 monkeyrunner 时以编程方式将地址/端口和日志记录级别提供给 monkeyrunner。

啊,轻度缺乏文档的乐趣。

于 2013-10-29T04:45:58.723 回答
0

monkeyrunner 为你的 android 带来了 python 的味道 :)

要解决您的问题:monkeyrunner.bat 本身将不起作用 - 您需要提供 python 脚本,例如:

monkeyrunner.bat test.py

更具体的示例:如果您的test.py文件包含以下行:

import os
print os.environ['OS']

的执行monkeyrunner.bat test.py将为您提供类似于此的输出:

C:\programs\adt\sdk\tools>monkeyrunner.bat test.py
Windows_NT
于 2013-08-30T07:43:39.893 回答
0

如果您查看 chimpchat 代码,您会看到

this.manager = createManager("127.0.0.1", 12345);

在monkeyrunner代码中

static int monkeyPort = 1080;

我尝试使用 cmd 在我的 PC 上连接 12345 和 1080,但 12345 不起作用。所以据我了解,您需要将端口更改为1080。

于 2016-02-16T09:08:14.260 回答