【发布时间】:2012-11-01 22:43:07
【问题描述】:
我正在尝试使用 SimpleXML 反序列化 Android 设备上的对象。在一个 maven 文件中,我使用了带有排除项的依赖项(我遵循了另一个问题中的建议,因为不排除这些依赖项,我无法启动应用程序):
<dependency>
<groupId>org.simpleframework</groupId>
<artifactId>simple-xml</artifactId>
<version>2.6.7</version>
<exclusions>
<!-- StAX is not available on Android -->
<exclusion>
<artifactId>stax</artifactId>
<groupId>stax</groupId>
</exclusion>
<exclusion>
<artifactId>stax-api</artifactId>
<groupId>stax</groupId>
</exclusion>
<!-- Provided by Android -->
<exclusion>
<artifactId>xpp3</artifactId>
<groupId>xpp3</groupId>
</exclusion>
</exclusions>
为了测试,我只写了一个简单的类:
class Test {
String s;
}
我尝试获取一个对象:
Test t = null;
try {
t = serializer.read(Test.class, source);
} catch (Exception e) {
e.printStackTrace();
}
Log.v("t",t.s);
但在最后一行,当我尝试读取字段 t.s 时,我收到如下错误:
Could not find method javax.xml.stream.XMLInputFactory.newInstance, referenced from method org.simpleframework.xml.stream.StreamProvider.<init>
unable to resolve static method 3372: Ljavax/xml/stream/XMLInputFactory;.newInstance ()Ljavax/xml/stream/XMLInputFactory;
dead code 0x0006-0009 in Lorg/simpleframework/xml/stream/StreamProvider;.<init>
unable to find class referenced in signature (Ljavax/xml/stream/XMLEventReader;)
问题的原因可能是什么,我该如何解决?
【问题讨论】:
-
请告诉我们另一个问题是什么。否则,您可能希望删除您的排除项并使用 latstet Simplxml - 框架版本并从那里开始。
-
@wolfgang-fahl 另一个问题在这里:stackoverflow.com/questions/5964668/… 最后我使用了 Gson,我没有遇到任何问题。
-
你能发布你的xml吗?
标签: java android deserialization unmarshalling simple-framework