Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决;“线程中的异常”;动画线程“;java.lang.NullPointerException“;?_Java_Multithreading_Netbeans_Nullpointerexception_Processing - Fatal编程技术网

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

如何解决;“线程中的异常”;动画线程“;java.lang.NullPointerException“;?,java,multithreading,netbeans,nullpointerexception,processing,Java,Multithreading,Netbeans,Nullpointerexception,Processing,我目前正在进行从处理到Netbeans的代码移植。然而,我遇到了一些困难,因为当我在Netbeans java中运行它时,处理中运行的完全相同的代码给了我一个空指针异常。 我面临的错误有: Exception in thread "Animation Thread" java.lang.NullPointerException at gardeningmania.GardeningMania.loadPng(GardeningMania.java:303) at gardeningmania

我目前正在进行从处理到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();
}
@覆盖
公共作废设置(){
setupThreading(“/Menus/”,menuLoader,menuThread);
setupThreading(“/Navigations/”,navLoader,navThread);
设置线程(“/Navigations2/”,nav2Loader,NAV2Read);
}
void loadPng(文件[]文件,图像加载器){
对于(int i=0;i

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

检查您是否指向正确的目录,而不是相对路径。我觉得下面的代码给出了一个空对象
文件

File[] files = dir.listFiles();

menuLoader、navLoader或nav2Loader均为空


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

请以适当的方式使用格式,使第303行中的任何内容都不为null。
menuLoader
nav2Loader
nav2Loader
为null可能为空,但不为空。问题是您在猜测,因为无法权威地回答OP的问题。您可能是正确的,但同样合理的是,他的
加载程序
变量为
null
@user2310289
File.listFiles()
将返回
null
,如果路径为wrong@BrianRoach:这正是我所猜测的。用户表示它在另一个环境下工作。由于使用了相对路径,当他/她切换到NetBeanssory时,系统无法找到文件夹,应该清理我的眼镜
如果此抽象路径名不表示目录,则此方法返回null。
你们两个需要组合答案。。。那么你已经覆盖了基地。