![](/img/trans.png)
[英]Exception in thread “main” java.lang.IllegalArgumentException: image == null
[英]Exception in thread "main" java.lang.IllegalArgumentException: input == null
很多人已經問過這個問題了,但我不能隨便解決。 我正在嘗試按照本教程制作 2d 游戲,現在我在精靈角色部分,我正在向我的 GamePanel 添加圖像。
這是堆棧跟蹤:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1356)
at entity.Player.getPlayerImage(Player.java:53)
at entity.Player.<init>(Player.java:25)
at main.GamePanel.<init>(GamePanel.java:29)
at main.Main.main(Main.java:17)
這是關鍵方法:
public void getPlayerImage() {
try {
up1 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_up_1.png"));
up2 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_up_2.png"));
down1 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_down_1.png"));
down2 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_down_2.png"));
left1 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_left_1.png"));
left2 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_left_2.png"));
right1 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_right_1.png"));
right2 = ImageIO.read(getClass().getResourceAsStream("/res/player/boy_right_2.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
在getPlayerImage()
中,您可能使用了錯誤的圖像路徑。 這導致getClass().getResourceAsStream
為null
。 這將導致給出read()
-方法null
而不是文件。
片段 rom ImageIO:
/** @exception IllegalArgumentException if {@code input} is
* {@code null}.
* @exception IOException if an error occurs during reading or when not
* able to create required ImageInputStream.
*/
public static BufferedImage read(File input) throws IOException {
if (input == null) {
throw new IllegalArgumentException("input == null!");
}
//...
}
您是否已將res
文件夾設置為 IDE 中的資源文件夾?
如果是項目資源文件夾,您可以嘗試重新創建項目。 我遇到了類似的問題,重新創建項目對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.