Android:包含/重新打包引用Javax核心类的依赖项时出错


问题内容

我正在使用Maven作为构建工具的Android应用程序上工作。我设法正确设置了Evertyhing(将Maven依赖项导出到apk等),但是我还有一个剩余的问题使我发疯。

我想在我的POM文件中包含对simpleframework的xml解析器的依赖,定义如下:

<dependency>
    <groupId>org.simpleframework</groupId> 
    <artifactId>simple-xml</artifactId>
    <version>2.5.3</version>
</dependency>

当我mvn install在项目上发布时,出现以下错误(被截断):

trouble processing "javax/xml/namespace/NameSpaceContext.class" ...

我知道来自引用这些javax类的简单xml解析器的错误结果,但是我还没有找到解决方案(设置–core-library标志没有用)。

我目前正在尝试使用maven-jarjar-pluging重新打包依赖关系,但这似乎也不起作用。

谁能帮我这个忙吗?非常感谢!


问题答案:

像这样定义您的simple-xml依赖:

<dependency>
    <groupId>org.simpleframework</groupId>
    <artifactId>simple-xml</artifactId>
    <version>2.6.1</version>
    <exclusions>
        <!-- StAX is not available on Android -->
        <exclusion>
            <artifactId>stax</artifactId>
            <groupId>stax</groupId>
        </exclusion>
        <exclusion>
            <artifactId>stax-api</artifactId>
            <groupId>stax</groupId>
        </exclusion>
        <!-- Provided by Android -->
        <exclusion>
            <artifactId>xpp3</artifactId>
            <groupId>xpp3</groupId>
        </exclusion>
    </exclusions>
</dependency>