今天在調(diào)試一個(gè)簡(jiǎn)單的JAVA手機(jī)小程序的時(shí)候,遇到了一個(gè)讓我頭痛了半天的問(wèn)題。但最終得以解決,將方法寫(xiě)上,說(shuō)不定還有一些朋友也遇到了類(lèi)似的情況。
這個(gè)程序是一個(gè)關(guān)于在手機(jī)上顯示圖片的程序,分成兩段:
1、MainCanvas.java部分
內(nèi)容如下:
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部分
內(nèi)容如下:
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 自動(dòng)生成構(gòu)造函數(shù)存根
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自動(dòng)生成方法存根
}
protected void pauseApp() {
// TODO 自動(dòng)生成方法存根
}
protected void startApp() throws MIDletStateChangeException {
m_MainCanvas=new MainCanvas();
Display.getDisplay(this).setCurrent(m_MainCanvas);
while(true){
m_MainCanvas.repaint();
}
}
}
過(guò)程是調(diào)用目錄下的一個(gè)叫做 IIM.PNG的文件
在調(diào)試過(guò)程中,編譯器老是報(bào)Java.lang.NullPointerException 的錯(cuò)誤,順藤摸瓜,發(fā)現(xiàn)是找不到圖片的問(wèn)題才導(dǎo)致拋出這樣的異常??墒俏乙呀?jīng)把圖片放到了程序目錄下呀。于是一度認(rèn)為是編程環(huán)境出了問(wèn)題??墒聦?shí)并非如此。查找了半天資料才發(fā)現(xiàn),原來(lái)圖片應(yīng)該放在verified\classes下,把文件放進(jìn)去,所有問(wèn)題都解決了。OK!