如何解决“线程中的异常”动画线程“java.lang.NullPointerException”?

时间:2014-01-15 07:36:41

标签: java multithreading netbeans nullpointerexception processing

我目前正在处理从Processing到Netbeans的代码端口。但是,我遇到了一些困难,因为当我在Netbeans java中运行它时,在处理中运行的完全相同的代码给了我一个空指针异常。 我面临的错误是:

Exception in thread "Animation Thread" java.lang.NullPointerException
at gardeningmania.GardeningMania.loadPng(GardeningMania.java:303)  
at gardeningmania.GardeningMania.setupThreading(GardeningMania.java:315)  
at gardeningmania.GardeningMania.setup(GardeningMania.java:182)   
at processing.core.PApplet.handleDraw(PApplet.java:2281)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243)
at processing.core.PApplet.run(PApplet.java:2177)
at java.lang.Thread.run(Thread.java:722)

这些是导致上述状态错误的代码的某些部分:

@Override

public void setup() {
    setupThreading("/Menus/", menuLoader, menuThread);
    setupThreading("/Navigations/", navLoader, navThread);
    setupThreading("/Navigations2/", nav2Loader, nav2Thread);
}

void loadPng(File[] files, ImageLoader loader) {

    for (int i = 0; i < files.length; i++) {
        String path = files[i].getAbsolutePath();
        if (path.toLowerCase().endsWith(".png")) {
            loader.loadImg(path);
        }
    }
}

void setupThreading(String folderName, ImageLoader loader, Thread threading) {

    File dir = new File(sketchPath + folderName);
    File[] files = dir.listFiles();
    threading = new Thread(loader);
    loadPng(files, loader);
    threading.start();
}

我知道如何解决这些错误吗?

2 个答案:

答案 0 :(得分:1)

检查您是否指向正确的目录,而不是相对路径。我觉得以下代码提供了一个空对象files

File[] files = dir.listFiles();

答案 1 :(得分:0)

menuLoader或navLoader或nav2Loader为null

或者@GV可能正确猜到新环境中的filePath不正确,因此导致File.ListFiles()返回null