Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at com.game.src.gfx.BufferedImageLoader.loadImage(BufferedImageLoader.java:15)
at com.game.src.main.Game.init(Game.java:43)
at com.game.src.main.Game.run(Game.java:81)
at java.lang.Thread.run(Unknown Source)
这是我的完整错误,我有一个非常基本但正在运行的游戏,我在Eclipse中创建。我试图在JGrasp中打开Game.java文件,看看我是否可以运行它,因为这是我们在学校使用的程序。当我尝试在JGrasp中运行时,它没有工作,所以我尝试再次在eclipse中运行它,并且出现了这个错误。这是我的Game.java的一部分,它调用BufferedImageLoader,这是错误的来源。
public void init() throws IOException{
requestFocus();
BufferedImageLoader loader = new BufferedImageLoader();
spriteSheet = loader.loadImage("SpriteSheet.png");
SpriteSheet ss = new SpriteSheet(spriteSheet);
im = new ImageManager(ss);
p = new Player(5 * TILE, 10 * TILE, im, im.playeru);
this.addKeyListener(p);
BufferedImage limage = loader.loadImage("/level1.png");
l1 = new Level(limage);
}
我的游戏类创建一个名为loader的新BufferedImageLoader实例,并将构造函数设置为(" SpriteSheet.png"),它是eclipse中我的BufferedImageLoader类的构造函数。
BufferedImageLoader类如下
package com.game.src.gfx;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
public class BufferedImageLoader {
private BufferedImage image;
public BufferedImage loadImage(String path) throws IOException{
image = ImageIO.read(getClass().getResource(path));
return image;
}
}
我不知道为什么它停止工作,我搜索了相当数量,如果你能帮助我,那将是非常感激的! 如果您需要更多代码或信息,请不要犹豫, 谢谢!
答案 0 :(得分:2)
您的图片文件(“SpriteSheet.png”)应与BufferedImageLoader
类位于同一个包中。
查看有关如何指定路径的文档 - public URL getResource(String name)
。