J2ME 手机开发中遇到的kxml问题,急求答案!
最近做一个手机开发项目,遇到一些问题,长话短说,下面是我的代码:
import java.io.*;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import org.kxml.*;
import org.kxml.parser.*;
/**
* Simple MIDlet that demonstrates how an XML document can be parsed using kXML
* or NanoXML.
*/
public class Test extends MIDlet {
private static String xmlDocument = "<list><item>apple</item>"
+ "<item>orange</item>" + "<item>pear</item></list>";
private Display display;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
public Test() {
}
protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
exitMIDlet();
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
if (display == null) { // first time called...
initMIDlet();
}
}
private void initMIDlet() {
display = Display.getDisplay(this);
String[] items;
try {
items = parseUsingkXML(xmlDocument);
display.setCurrent(new ItemList(items));
} catch (Throwable e) {
e.printStackTrace();
}
}
public void exitMIDlet() {
notifyDestroyed();
}
// Parses a document using kXML, looking for "item"
// nodes and returning their content as an
// array of strings.
private String[] parseUsingkXML(String xml) {
try {
ByteArrayInputStream bin = new ByteArrayInputStream(xml.getBytes());
InputStreamReader in = new InputStreamReader(bin);
XmlParser parser = new XmlParser(in);
Vector items = new Vector();
parsekXMLItems(parser, items);
String[] tmp = new String[items.size()];
items.copyInto(tmp);
return tmp;
} catch (Exception e) {
e.printStackTrace();
return new String[] { e.toString() };
}
}
private void parsekXMLItems(XmlParser parser, Vector items)
throws IOException {
boolean inItem = false;
while (true) {
ParseEvent event = parser.read();
switch (event.getType()) {
case Xml.START_TAG:
if (event.getName().equals("item")) {
inItem = true;
}
break;
case Xml.END_TAG:
if (event.getName().equals("item")) {
inItem = false;
}
break;
case Xml.TEXT:
if (inItem) {
items.addElement(event.getText());
}
break;
case Xml.END_DOCUMENT:
return;
}
}
}
// Simple List UI component for displaying the list of
// items parsed from the XML document.
class ItemList extends List implements CommandListener {
ItemList(String[] list) {
super("Items", IMPLICIT, list, null);
addCommand(exitCommand);
setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
exitMIDlet();
}
}
}
}
在运行后,出现如下错误:
java.lang.NoClassDefFoundError: org/kxml/parser/XmlParser
at Test.parseUsingkXML(+21)
at Test.initMIDlet(+15)
at Test.startApp(+11)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+80)
Execution completed.
3409761 bytecodes executed
767 thread switches
1671 classes in the system (including system classes)
17863 dynamic objects allocated (542628 bytes)
3 garbage collections (459916 bytes collected)
也就是找不到引用的kxml类包,请高手指教!谢谢