直接使用
compile group: 'com.thoughtworks.xstream', name: 'xstream', version: '1.4.9'
会出现MultipleDexFile的错误,原因是与Android自带的XmlPullParser冲突,需要用下面方法
compile(group: 'com.thoughtworks.xstream', name: 'xstream', version: '1.4.9') { exclude group: 'xmlpull', module: 'xmlpull' }
在使用@XStreamAlias注解起别名时,需要用xstream.processAnnotations使用实体类中的注解,要不然注解无效
/** * java类转xml * @param o * @return */ public String objectToXML(Object o) { XStream xstream = new XStream(); xstream.processAnnotations(o.getClass()); return xstream.toXML(o); } /** * xml转实体类 * @param xml * @param c * @param <T> * @return */ public <T>T XML2Object(String xml, Class<T> c) { XStream xStream = new XStream(new DomDriver()); xStream.processAnnotations(c); T t = (T) xStream.fromXML(xml); return t; }