今天在調試一個簡單的JAVA手機小程序的時候,遇到了一個讓我頭痛了半天的問題。但最終得以解決,將方法寫上,說不定還有一些朋友也遇到了類似的情況。
這個程序是一個關于在手機上顯示圖片的程序,分成兩段:
1、MainCanvas.java部分
內容如下:
import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class MainCanvas extends Canvas {
public Image m_Image;
MainCanvas(){
try{
m_Image=Image.createImage("/IM.png");
}
catch(IOException e){
}
}
protected void paint(Graphics g){
g.drawImage(m_Image,0,0,Graphics.TOP|Graphics.LEFT);
}
}
2、MyCartoonMidlet.java部分
內容如下:
ukimport javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class MyCartoonMidlet extends MIDlet {
public MainCanvas m_MainCanvas;
public MyCartoonMidlet() {
// TODO 自動生成構造函數存根
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自動生成方法存根
}
protected void pauseApp() {
// TODO 自動生成方法存根
}
protected void startApp() throws MIDletStateChangeException {
m_MainCanvas=new MainCanvas();
Display.getDisplay(this).setCurrent(m_MainCanvas);
while(true){
m_MainCanvas.repaint();
}
}
}
過程是調用目錄下的一個叫做 IIM.PNG的文件
在調試過程中,編譯器老是報Java.lang.NullPointerException 的錯誤,順藤摸瓜,發現是找不到圖片的問題才導致拋出這樣的異常??墒俏乙呀洶褕D片放到了程序目錄下呀。于是一度認為是編程環境出了問題??墒聦嵅⒎侨绱?。查找了半天資料才發現,原來圖片應該放在verified\classes下,把文件放進去,所有問題都解決了。OK!