eclipse中跑Python代码,会报Java空指针错误

代码如下:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
import sys

device = MonkeyRunner.waitForConnection("d48921f9")
if device == None:
print("Please connect your device!!")
sys.exit(1)
device.installPackage("E:\\江海\\看看发布\\Android\\正式版本\\KankanNews_baidu2.4.0.apk")
MonkeyRunner.sleep(3)
device.startActivity(component = "com.kankanews.kankanxinwen")
MonkeyRunner.sleep(5)

报错如下:
Traceback (most recent call last):
File "D:\workspace_python\MonkeyRunner_Test\Test_Code\Test1.py", line 12, in <module>
device = MonkeyRunner.waitForConnection("d48921f9")
at com.android.monkeyrunner.MonkeyRunner.waitForConnection(MonkeyRunner.java:75)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

java.lang.NullPointerException: java.lang.NullPointerException

所有环境都是好的,cmd中运行 adb devices 也是正常的。求解释

比较简单的是用exec去直接执行.py文件
public static void main(String[] args) throws IOException {
// set up the command and parameter
String pythonScriptPath = "/home/norbert/python/helloPython.py";
String[] cmd = new String[2];
cmd[0] = "python2.6";
cmd[1] = pythonScriptPath;
// create runtime to execute external command
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);
// retrieve output from python script
BufferedReader bfr = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
while((line = bfr.readLine()) != null) {
// display each output line form python script
System.out.println(line);
}
}
python部分扩展包不多的话可以考虑jython,目前这种方式比较推荐,但是jython和python有一定的兼容性问题
还可以用JNI,cython,通过java调C,C调python实现
温馨提示:内容为网友见解,仅供参考
无其他回答

java中的空指针异常怎么解决
Java 语言有许多静态代码分析工具,如 Eclipse IDE、SpotBugs、Checker Framework 等,它们可以帮助程序员检测出编译期的错误。结合 @Nullable 和 @Nonnull 等注解,我们就可以在程序运行之前发现可能抛出空指针异常的代码。 但是,空值检测注解还没有得到标准化。虽然 2006 年 9 月社区提出了 JSR 305 规范,但它长期处于...

java.lang.NullPointerException错误是什么意思
在Java中一般报空指针异常的原因有以下几种:1、字符串变量未初始化;2、接口类型的对象没有用具体的类初始化,比如:List lt;会报错 List lt = new ArrayList();则不会报错了 3、当一个对象的值为空时,没有判断为空的情况。可以试着把下面的代码前加一行代码:if(rb!=null && rb!="")...

空指针异常是什么原因?
调用一个实际为null的对象的属性或方法 就会有空指针异常.比如说 Object obj = null;obj.toString(); 这句就会报空指针异常 java中的空指针异常怎么解决 空指针异常产生的主要原因如下:itjob网上有例子,(1)当一个对象不存在时又调用其方法会产生异常obj.method() obj对象不存在 (2)当访问或修...

什么是空指针异常
所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常。产生空指针异常的原因:(1) 当一个对象不存在时又调用其方法会产生异常 &#...

为什么在Eclipse下使用System.console().readLine()获取控制台输入时提...
语句本身是没有错的。问题的关键是这段代码若是在eclipse的运行就会有问题,而如果你用命令行的方式,先编译后运行就没有问题了。以下是我在java高手真经第272页上看到的专业解释。"虚拟机是否具有控制台取决于底层平台,还取决与虚拟机的方式,如果虚拟机从一个交互式命令行开始启动,且没有重定向标准...

Eclipse调用python脚本出现ImportError: No module named os~~急求答 ...
你运行的命令行不对,那句话应该是“pi.execfile("python src\\\\TestOne\\\\HelloWorld.py")”

java 调用 python脚本 ImportError: No module named os
回答:很久以前用eclipse写过python,好像要用插件的。 另外结合引用jar包的经验,引用一个jar包的时候要把该jar包的依赖包也引入 你这个看上去是缺少os这个模块。是不是一些基本的模块没有添加到java配置python的目录里?

eclipse hadoop出现 java.lang.NullPointerException 是怎么回事_百度...
Advanced parameters 里面有个参数mapreduce.framework.name,本来是local,需要设置成yarn(因为我的hadoop是yarn管理的),改完之后就不会报空指针了,但是你还会遇到其他的问题,别问我怎么知道的,我看了插件的源代码。。。

java.lang.NullPointerException 是什么意思啊 该如何处理
在Java中一般报空指针异常的原因有以下几种:1、字符串变量未初始化;2、接口类型的对象没有用具体的类初始化,比如:List lt;会报错 List lt = new ArrayList();则不会报错了 3、当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码: if(rb!=null && rb!

javanull.equals('')会报空指针异常,''.equals(null)就不
在Java编程中,使用null和空字符串("")时,调用equals方法可能导致不同的结果和行为,主要源于null是一个特殊对象,而空字符串是已初始化的对象。具体而言,当使用null作为参数调用equals方法时,会引发空指针异常(NullPointerException),因为null不是一个有效的对象实例,无法执行任何方法调用,如equals...

相似回答