如何让 kXML 工作?

Posted

技术标签:

【中文标题】如何让 kXML 工作?【英文标题】:How do I get kXML to work? 【发布时间】:2010-01-28 10:32:27 【问题描述】:

我正在尝试实现现有的 XML 解析器:kXML。

我遇到了以下错误:

java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException 在 com.sun.midp.midlet.MIDletState.createMIDlet(+29) 在 com.sun.midp.midlet.Scheduler.schedule(+52) 在 com.sun.midp.main.Main.runLocalClass(+28) 在 com.sun.midp.main.Main.main(+80) 执行完成。

在this site,您可以找到我遇到的错误。然而,该解决方案不起作用。我使用了以下脚本:

C:\WTK2.5.2_01\bin\preverify -classpath .;C:\java_libraries\wirelesstoolkit\midpapi20.jar org.kxml2.io.KXmlParser C:\WTK2.5.2_01\bin\preverify -classpath .;C:\java_libraries\wirelesstoolkit\midpapi20.jar org.kxml2.io.KXmlSerializer C:\WTK2.5.2_01\bin\preverify -classpath .;C:\java_libraries\wirelesstoolkit\midpapi20.jar org.xmlpull.v1.XmlPullParser C:\WTK2.5.2_01\bin\preverify -classpath .;C:\java_libraries\wirelesstoolkit\midpapi20.jar org.xmlpull.v1.XmlPullParserException C:\WTK2.5.2_01\bin\preverify -classpath .;C:\java_libraries\wirelesstoolkit\midpapi20.jar org.xmlpull.v1.XmlPullParserFactory C:\WTK2.5.2_01\bin\preverify -classpath .;C:\java_libraries\wirelesstoolkit\midpapi20.jar org.xmlpull.v1.XmlSerializer 光盘输出 C:\Program Files\Java\jdk1.6.0_14\bin\jar -cvf ..\kxml2.jar org

我收到以下错误(其中多个):

C:\Users\****\Desktop\kxmlfolder>C:\WTK2.5.2_01\bin\preverify -classpath .;C:\ java_libraries\wirelesstoolkit\midpapi20.jar org.kxml2.io.KXmlParser 预验证类 org.xmlpull.v1.XmlPullParser 时出错 java/lang/NoClassDefFoundError: java/lang/Object C:\Users\****\Desktop\kxmlfolder>C:\WTK2.5.2_01\bin\preverify -classpath .;C:\ java_libraries\wirelesstoolkit\midpapi20.jar org.kxml2.io.KXmlSerializer 预验证类 org.xmlpull.v1.XmlSerializer 时出错 java/lang/NoClassDefFoundError: java/lang/Object

可能是什么原因?

【问题讨论】:

您使用什么 IDE 和操作系统进行开发? Eclipse,无线工具包,Windows Vista 【参考方案1】:

您的问题是您设法配置开发环境以针对 kXML 库编译您的 MIDlet,但您没有将它们包含到您的 MIDlet jar 文件中,因此 J2ME 模拟器不知道如何找到您的 MIDlet 导入的类在运行时。

【讨论】:

我应该如何配置这个 MIDlet jar 以包含 kXML 库? 如何配置这个 MIDlet jar 以包含 kXML 库【参考方案2】:

也许您应该包含 kXml 库。 如果你使用eclipse MTJ,只需右键单击项目名称,选择属性,在列表中选择Java Build Path,在右键选择库,添加外部jar 按钮,浏览并选择kXml.jar 文件。 您将看到现在包含的新库。 再次尝试运行该项目。

【讨论】:

我已经这样做了。 eclipse 会找到我想要调用的类和方法(自动导入、自动完成等)。只有当我运行它不起作用的东西时.. 1.您是否尝试过重新创建新项目?我想这与构建配置文件有关。也许你可以把它贴在这里,有人会找出问题所在。 2. 你用的是哪个版本的eclipse和MTJ?你有网豆吗?如果您在 Netbeans 中创建此项目,是否会发生同样的错误?【参考方案3】:

您需要在buildpath 设置中链接kxml-source。我花了 3 天的时间才弄清楚这一点。

【讨论】:

【参考方案4】:

在 Eclipse 中,只需右键单击项目名称,选择属性,选择 Java Build Path,转到 ORDER & EXPORT 并单击要与项目的 jar 文件一起包含的外部 kXml jar 文件。这应该可以。

【讨论】:

【参考方案5】:

我希望我的发现在某种程度上是相关的: 通过 XStream 教程http://x-stream.github.io/tutorial.html 我得到了同样的错误信息。我发现我必须包含 kxml2-[version].jar(在捆绑包中提供)而不是 kxml2-min-[version].jar,如教程中所述。 所以按照 QuickRecipesOnSymbian 的说法,我认为包含正确的 jar 至关重要。

【讨论】:

以上是关于如何让 kXML 工作?的主要内容,如果未能解决你的问题,请参考以下文章

j2me中的xml解析

使用 KXML 在 LWUIT 中解析自定义 XML 文件

错误:“ORA-01438:值大于此列允许的指定精度”故障因素:“空”详细信息:org.kxml2.kdom.Node@99c0b9c

XML解析不适用于lwuit应用程序的android构建

安卓6.0编译遇到的问题

让绑定如何工作