J2ME 手机开发中遇到的kxml问题,急求答案!

zhangjiongrui 2008-10-17 01:46:49
最近做一个手机开发项目,遇到一些问题,长话短说,下面是我的代码:
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类包,请高手指教!谢谢
...全文
112 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjiongrui 2008-10-31
  • 打赏
  • 举报
回复
已经解决了,谢谢你们!呵呵
要把kxml源代码导入项目才成
bianmazi 2008-10-19
  • 打赏
  • 举报
回复
楼上正解.
andy11543070 2008-10-19
  • 打赏
  • 举报
回复
去开源网站下载Kxml解析包,然后导入到jbuilder or Eclipse
zhangjiongrui 2008-10-18
  • 打赏
  • 举报
回复
这里倒底有没有高人指点一下啊!
不会这么慢吧,在线急求答案!

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧