gpt4 book ai didi

java - 第二次解析 XML 文件时出现 XStream ConversionException

转载 作者:行者123 更新时间:2023-12-01 15:22:15 24 4
gpt4 key购买 nike

我正在尝试在 Android 应用程序中使用 XStream 从 XML 文件读取 TreeMap(我之前也使用 XStream 创建了 XML 文件)。

我只是在类的静态方法中执行此操作

File f = new File(Environment.getExternalStorageDirectory(), "map.xml");

XStream xStream = new XStream(new DomDriver());

@SuppressWarnings("unchecked")
TreeMap<String,Object> map = (TreeMap<String,Object>) xStream.fromXML(f);

然后我第一次使用 TreeMap 中的值,没有任何问题。

问题是,如果我第二次调用该方法,无论我是在第一次执行后还是在一段时间后调用该方法,我都会得到以下结果:

05-24 08:33:53.404: E/AndroidRuntime(15543): FATAL EXCEPTION: main
05-24 08:33:53.404: E/AndroidRuntime(15543): com.thoughtworks.xstream.converters.ConversionException: null : null
05-24 08:33:53.404: E/AndroidRuntime(15543): ---- Debugging information ----
05-24 08:33:53.404: E/AndroidRuntime(15543): cause-exception : java.lang.NullPointerException
05-24 08:33:53.404: E/AndroidRuntime(15543): cause-message : null
05-24 08:33:53.404: E/AndroidRuntime(15543): class : java.util.TreeMap
05-24 08:33:53.404: E/AndroidRuntime(15543): required-type : java.util.TreeMap
05-24 08:33:53.404: E/AndroidRuntime(15543): converter-type : com.thoughtworks.xstream.converters.collections.TreeMapConverter
05-24 08:33:53.404: E/AndroidRuntime(15543): path : /tree-map
05-24 08:33:53.404: E/AndroidRuntime(15543): version : 0.0
05-24 08:33:53.404: E/AndroidRuntime(15543): -------------------------------
05-24 08:33:53.404: E/AndroidRuntime(15543): at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
05-24 08:33:53.404: E/AndroidRuntime(15543): at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
[...]
05-24 08:33:53.404: E/AndroidRuntime(15543): Caused by: java.lang.NullPointerException
05-24 08:33:53.404: E/AndroidRuntime(15543): at java.util.TreeMap.find(TreeMap.java:277)
05-24 08:33:53.404: E/AndroidRuntime(15543): at java.util.TreeMap.putInternal(TreeMap.java:240)
05-24 08:33:53.404: E/AndroidRuntime(15543): at java.util.TreeMap.put(TreeMap.java:186)
05-24 08:33:53.404: E/AndroidRuntime(15543): at java.util.AbstractMap.putAll(AbstractMap.java:381)
05-24 08:33:53.404: E/AndroidRuntime(15543): at com.thoughtworks.xstream.converters.collections.TreeMapConverter.populateTreeMap(TreeMapConverter.java:150)
[...]

使用相同的文件。事实上,如果我尝试读取该文件,然后将其作为字符串传递给 XStream,我会得到相同的异常(但 XML 字符串创建正常)。

有谁知道可能是什么原因或遇到过同样的问题并知道如何解决它?

谢谢!

最佳答案

好吧,这似乎是 TreeMap 和 Android 的问题...现在使用 HashMap,工作正常:)

关于java - 第二次解析 XML 文件时出现 XStream ConversionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10733999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com