Java:xmlpull 给我编译错误 (http://www.xmlpull.org/)
Posted
技术标签:
【中文标题】Java:xmlpull 给我编译错误 (http://www.xmlpull.org/)【英文标题】:Java: xmlpull giving me compile error (http://www.xmlpull.org/) 【发布时间】:2013-06-29 13:02:58 【问题描述】:我正在学习 xml 解析,我想使用 xmlpull.org 的 api。
我从http://www.xmlpull.org/v1/download/ 下载了“xmlpull_1_0_5.jar”文件并将其包含在我的参考库中。
然后编写了以下代码(在 Eclipse 中):
import java.io.IOException;
import java.io.StringReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class Collections
public static void main (String args[])
throws XmlPullParserException, IOException
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
System.out.println("parser implementation class is "+xpp.getClass());
问题是当我编译时出现这个错误:
线程“主”org.xmlpull.v1.XmlPullParserException 中的异常:无法加载任何工厂类(即使是小型或完整的默认实现);嵌套异常是: org.kxml2.io.XmlReader 在 org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:225) 在 org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:76) 在 Collections.main(Collections.java:12)
怎么了,请帮忙?
【问题讨论】:
【参考方案1】:首先,这不是编译器错误,因为它不会在编译时发生。这是一个运行时错误。
错误的原因是 xmlpull 只是一个 api - 它需要适当的 xml pull 解析器实现。
正如他们的主页所说,
如何使用它?
XMLPULL API 可免费使用。您可以将 XmlPull API 下载为 压缩包或 zip 文件。我们还提供对最新 API 的访问 通过匿名 CVS 的版本。
但是要使用 XMLPULL,您需要下载一个实现 XmlPull API。
请参阅http://www.xmlpull.org/impls.shtml#xmlpull 了解您可以下载的实现。
【讨论】:
什么是实现,我知道的唯一实现是接口实现? 我会试试KXML2,我能把jar文件作为参考库吗? sourceforge.net/projects/kxml/files/kxml2/kxml2-min-2.3.0.jar 是的,XmlPull 定义了一个接口,而 KXML2 等库实现了该接口。不过,它与编译时接口有点不同——它实际上是运行时委托。是的,您应该下载 KXML2 jar 文件,并在运行时将其添加到您的类路径中。 感谢您的帮助,但我仍然遇到相同的运行时错误。在此链接中,您可以看到屏幕截图和包含的库:skydrive.live.com/… 好的,所以我下载了 2 个 jar 文件(xmlpull_1_0_5.jar 和 xpp3_xpath-1.1.4c.jar),编译了您的代码,并在类路径上使用这 2 个 jar 文件运行它。使用命令行java -cp .:./xmlpull_1_0_5.jar:./xpp3-1.1.4c.jar Collections
(在OS X上-如果您使用的是Windows,请将':'路径分隔符更改为';',我得到了结果parser implementation class is class org.xmlpull.mxp1.MXParserCachingStrings
所以,我能想到的唯一解释是你没有正确设置类路径以上是关于Java:xmlpull 给我编译错误 (http://www.xmlpull.org/)的主要内容,如果未能解决你的问题,请参考以下文章
org.xmlpull.v1.XmlPullParser 的 Android ProGuard 错误
Java微信开发_Exception_01_The type org.xmlpull.v1.XmlPullParser cannot be resolved. It is indirectly ref
org.xmlpull.v1.XmlPullParserException:意外类型(位置:END_DOCUMENT null @ 1:0 in java.io.InputStreamReader@c