Java 因为线程为null而导致NullPointerException?

Java 因为线程为null而导致NullPointerException?,java,android,Java,Android,在过去的几个月里,我已经收到过三次这个堆栈strace。只有这三行: java.lang.NullPointerException at de.myapp.rec.MyThread.void run()(Unknown Source) at java.lang.Thread.run(Thread.java:856) 我想知道这是否意味着方法MyThread.rungetnull?或者是否存在导致NullPointerException的其他可能原因 线程是通过 myThread

在过去的几个月里,我已经收到过三次这个堆栈strace。只有这三行:

java.lang.NullPointerException
    at de.myapp.rec.MyThread.void run()(Unknown Source)
    at java.lang.Thread.run(Thread.java:856)
我想知道这是否意味着方法
MyThread.run
get
null
?或者是否存在导致
NullPointerException
的其他可能原因

线程是通过

myThread = new Thread(new MyThread());
Rec.threadWritingShouldContinue = true;
myThread.start();
线程的来源是关于:

class MyThread implements Runnable
{
    @Override
    public void run() {
        while ( Rec.threadWritingShouldContinue ) {
            int bufferSize;

            /* Do some stuff with local variables
               ...
             */
            try {
                MyMain.fileIDwrite.write(Rec.bigBuffer, Rec.bigBufByteWritePtr, bufferSize);
            } catch ( IOException e ) {
                Rec.threadWritingShouldContinue = false;
            }
        }
    }
}
使用调试信息编译不会有帮助,因为它可能会持续数周才能再次看到它

我想知道这是否意味着MyThread.run方法为null

否。方法不能为空

或者是否有其他可能导致NullPointerException的原因


原因只有一个。代码取消了对空指针的引用。

如果不显示代码,则无法回答此问题代码的哪一部分?调用或线程或两者?
de.myapp.rec.MyThread.void run()
。现在,源代码…?没有代码,就说不出来;)另外,你能用调试信息进行编译,这样你就不会得到那些
未知源
的东西吗?如果Android因为内存不足而决定抛出一个应用程序,而该应用程序的线程正在运行,但在主内存中是不可见的,那么方法会变成
null
吗?@HartmutPfitzinger方法不会变成任何东西,更不用说null了。你完全找错人了。我不明白这里有什么神秘之处。你有源代码。任何Java程序员都应该能够调试NullPointerException。堆栈跟踪的意义是,即使在您出于某种原因将其弄坏之后,异常也发生在该方法内部。我“弄错了树”,这是非常有用的信息。我只是想知道为什么堆栈跟踪中没有一行额外的代码指向出现异常的
MyThread
的源代码行。实际上,我没有“弄乱”跟踪,我只是通过
retrace.sh
删除了混淆,它只将de.myapp.rec.ec.run(未知源)的
第二行更改为de.myapp.rec.MyThread.void run()(未知源)
。您的评论让我向前看了看。我发现
MyMain.fileIDwrite
在其他地方设置为
null
(可能在线程仍在运行时)。由于
null
没有任何方法,
MyMain.fileIDwrite.write
不会在堆栈跟踪中留下一行,是吗?“因为null没有任何方法”是毫无意义的,因此你可以从中得出任何结论,包括那个结论。尚未调用您引用的write()方法,因为NPE首先出现,所以它当然不会出现在堆栈跟踪中。这就是你的意思吗?你表达自己的方式很奇怪。