如何使用Java调用MonkeyRunner的waitForConnection(PyObject [] args,String [] kws)

时间:2017-12-06 10:51:47

标签: java android monkeyrunner

我想用Java调用MonkeyRunner的waitForConnection函数。

我知道它可以使用Jython的device = MonkeyRunner.waitForConnection();,但由于参数不匹配而无法使用Java。

Official MonkeyRunner API仅适用于旧版的MonkeyRunner。 waitForConnection的参数是官方API中的'float timeout,string deviceId',但waitForConnection的参数是MonkeyRunner的jar包中的'PyObject [] args,String [] kws'。

我尝试了一些方法来调用waitForConnection,如下所示,但它引发了NoSuchMethodException。

public static void main(String[] args) {
    String[] strArray={"emulator-5554"};
    String serialNumber = "1.0";
    PyObject[] pyobj = { new PyFloat(15), new PyString(serialNumber) };
    MonkeyDevice device = MonkeyRunner.waitForConnection(pyobj, strArray);
}

我调试了它,它在waitForConnection函数中使用了反射类。这意味着我应该将device = MonkeyRunner.waitForConnection(pyobj, strArray);放入一个带参数'PyObject [] args,String [] kws'的函数中,如下所示。

public static void main(String[] args) {
    String[] strArray={"emulator-5554"};
    String serialNumber = "1.0";
    PyObject[] pyobj = { new PyFloat(15), new PyString(serialNumber) };
    MonkeyDevice device = connection(pyobj, strArray);
}
public static MonkeyDevice connection(PyObject[] args, String[] kws) {
    MonkeyDevice device = MonkeyRunner.waitForConnection(args, kws);
    return device;
}

但它引发了NullPointerException。

我希望将monkeyrunner连接到模拟器并返回MonkeyDevice对象。

我不知道如何在一些尝试和在互联网上搜索后调用waitForConnection()。

请帮助解决问题或提出一些建议。我对jar中的实际参数与官方API不匹配感到困惑。

感谢。

0 个答案:

没有答案