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 の値を問題なく使用します...初めてです。
問題は、メソッドを 2 回目に呼び出す場合、最初の実行の直後に実行するか、しばらくしてから実行するかに関係なく、次のようになります。
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 文字列は問題なく作成されます)。
原因が何であるかを知っている人、または同じ問題を経験したことがあり、それを修正する方法を知っている人はいますか?
ありがとう!