[英]SimpleXML on Android and error while deserialization
我正在嘗試使用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);
但是在最后一行中,當我嘗試讀取ts字段時,出現如下錯誤:
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;)
問題可能是什么原因,我該如何解決?
您必須在課程中添加注釋。 我使用Simple XML 2.6.9(僅simple-xml-2.6.9.jar
)進行了一個小測試->沒問題。
XML:
<test>
<s>abc</s>
</test>
測試類別:
@Root
public class Test
{
@Element
String s;
@Override
public String toString()
{
return "Test{" + "s=" + s + '}';
}
}
反序列化XML:
final File f = ...
Serializer ser = new Persister();
Test t = ser.read(Test.class, f);
System.out.println(t);
輸出:
Test{s=abc}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.