Android改造中集成简单XML转换器的问题

Android改造中集成简单XML转换器的问题,android,converter,integration,retrofit,simple-framework,Android,Converter,Integration,Retrofit,Simple Framework,在安卓系统改造中集成简单的XML转换器时,我遇到了几个问题。 1). 在build.gradle中添加了“compile('com.squareup.reformation:converter simplexml:1.9.0')之后,我遇到了编译错误 错误报告: 信息:渐变任务[:app:assembleDebug] 警告:调试时忽略依赖项xpp3:xpp3:1.1.3.3,因为它可能与Android提供的内部版本冲突。 如果出现问题,请使用jarjar重新打包以更改类包 警告:发布时忽略依赖项

在安卓系统改造中集成简单的XML转换器时,我遇到了几个问题。
1). 在build.gradle中添加了“compile('com.squareup.reformation:converter simplexml:1.9.0')之后,我遇到了编译错误

错误报告: 信息:渐变任务[:app:assembleDebug] 警告:调试时忽略依赖项xpp3:xpp3:1.1.3.3,因为它可能与Android提供的内部版本冲突。 如果出现问题,请使用jarjar重新打包以更改类包 警告:发布时忽略依赖项xpp3:xpp3:1.1.3.3,因为它可能与Android提供的内部版本冲突。 如果出现问题,请使用jarjar重新打包以更改类包

2) 。我通过提供根类名创建了Java模式。我不断得到一个或另一个元素的实例化Exception或ElementException,并在字段“description”上得到mazorly reformation.converter.ConversionException:org.simpleframework.xml.core.ValueRequiredException:cannot满足@org.simpleframework.xml.element(data=false,name=description,required=true,type=void)。许多字段出现相同错误。

第1期。
我必须在我的build.gradle中添加以下内容。由于这些软件包已经随Android提供,因此存在一些问题

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'
    }
问题2)。
我必须有Java类层次结构,它应该以XML中的第一个元素开始。 我将“Rss”作为XML中的第一个元素。当我使用生成模式时,我给自己起了一个类似“Warnings”的名字,它为所有必需的元素生成了类。java有“Rss”实例成员。我没有传递Rss,而是将警告传递给reformation.Callback

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

Class Rss {
   private Channel channel;
   .....
   .....
}  
它可以在某种程度上找到类的层次结构,但它开始为所有类的每个字段提供所述的错误/异常,尽管这些字段似乎可用。
在花了相当长的时间解决这些错误之后,我更改了传递给Reformation.Callback的response类,该类从Warnings回调到Rss,并且工作正常

XML:

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

...
这是我的改装请求代码,有错误:

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
              }
        });
reformationservice.getWarnings(lat、lon、authKey、new Callback(){
@凌驾
public void成功(警告响应警告响应响应响应响应){
//处理成功响应。。
}
@凌驾
公共无效失败(错误){
//处理错误响应
}
});
工作代码:

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
              }
        });
reformationservice.getWarnings(lat、lon、authKey、new Callback(){
@凌驾
public void成功(警告响应警告响应响应响应响应){
//处理成功响应。。
}
@凌驾
公共无效失败(错误){
//处理错误响应
}
});
唯一的区别是传递给回调的类

因此,在XML中使用根元素的类名传递给回调,这样XML到Java对象的转换将很容易成功

您可以在XML集成改造帮助站点中找到此讨论:

以防万一,如果有人在maven中寻找解决方案,那么它将是
按以下方式订立—
改装
Just in case if someone is looking for a resolution in maven then it will be 
done as follows - 

<dependency>
    <groupId>com.squareup.retrofit</groupId                      
    <artifactId>converter-simplexml</artifactId>
    <version>${converter-simplexml.version}</version>
    <exclusions>
        <exclusion>
            <groupId>stax</groupId>
            <artifactId>stax</artifactId>
        </exclusion>
    </exclusions>
</dependency>