Problemas al integrar el convertidor Simple XML en retrofit para Android

Me he enfrentado a un par de problemas al integrar el convertidor Simple XML en retrofit para Android.
1). Yo estaba recibiendo error de compilación después de haber agregado "compile ('com.squareup.retrofit: converter-simplexml: 1.9.0')" en build.gradle.

Informe de error: Información: tareas de Gradle [: app: assembleDebug] Advertencia: Dependencia xpp3: xpp3: 1.1.3.3 se ignora para depuración, ya que puede estar en conflicto con la versión interna proporcionada por Android. En caso de problema, repárgalo con jarjar para cambiar los paquetes de la clase Advertencia: Dependencia xpp3: xpp3: 1.1.3.3 se ignora para su liberación, ya que puede estar en conflicto con la versión interna proporcionada por Android. En caso de problema, por favor empacarlo con jarjar para cambiar los paquetes de la clase

2). He creado esquemas de Java con la ayuda de este http://pojo.sodhanalibrary.com/Convert proporcionando el nombre de la clase de la raíz. Y sigo recibiendo InstantiateException o ElementException para uno o el otro elemento y mazorly retrofit.converter.ConversionException: org.simpleframework.xml.core.ValueRequiredException: No se puede satisfacer @ org.simpleframework.xml.Element (data = false, name = description , Required = true, type = void) en el campo "description". El mismo error para muchos campos.

NÚMERO 1).
Tuve que añadir el siguiente a mi build.gradle. Como estos paquetes viene con Android ya había problemas.

compile ('com.squareup.retrofit:converter-simplexml:1.9.0') { exclude group: 'xpp3', module: 'xpp3' exclude group: 'stax', module: 'stax-api' exclude group: 'stax', module: 'stax' } 

NÚMERO 2).
Tuve que tener la jerarquía de clases Java que debería comenzar con el primer elemento que está en XML. Tenía "Rss" como primer elemento en mi XML. Y mientras generé los esquemas usando http://pojo.sodhanalibrary.com/Convert , di mi propio nombre algo como "Advertencias" que generaban clases para todos los elementos requeridos. Y Warnings.java tenía un miembro de instancia "Rss". En lugar de pasar Rss, había pasado advertencias para retrofit.Callback.

 Class Warnings { private Rss rss; ..... ..... } Class Rss { private Channel channel; ..... ..... } 

Podría encontrar jerarquía de clases en cierta medida, pero comenzó a dar errores / excepciones mencionadas en la pregunta para todos los campos de todas las clases, aunque parecen estar disponibles.
Después de un tiempo bastante grande en la resolución de estos errores, he cambiado la clase de respuesta que se pasó a retrofit.Callback de advertencias a Rss y que funcionó.

XML:

 <rss version="2.0"> <channel>...</channel> </rss> 

Este era mi código de solicitud de actualización con errores:

 retrofitService.getWarnings(lat, lon, authKey, new Callback<Warnings>() { @Override public void success(WarningsResponse warningsResponse, Response response) { // handle success response.. } @Override public void failure(RetrofitError error) { // handle error response } }); 

Código de trabajo:

 retrofitService.getWarnings(lat, lon, authKey, new Callback<Rss>() { @Override public void success(WarningsResponse warningsResponse, Response response) { // handle success response.. } @Override public void failure(RetrofitError error) { // handle error response } }); 

El único diff es la clase pasó a devolución de llamada.

Por lo tanto, utilice el nombre de clase del elemento raíz en XML para pasar a devolución de llamada para que la conversión de objetos XML a Java tenga éxito fácilmente.

Puede encontrar esta discusión en la integración de XML en el sitio de ayuda de Retrofit:
https://futurestud.io/blog/retrofit-how-to-integrate-xml-converter/

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.