14

我正在开发一个使用 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 重新打包依赖项,但这似乎也不起作用。

谁能帮我解决这个问题?非常非常感谢提前!

4

3 回答 3

28

像这样定义您的 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>
于 2011-09-06T08:39:28.160 回答
2

我使用 android-maven-plugin,并在 POM 中添加<coreLibrary>true</coreLibrary>到插件的标签对我有用。<configuration>但是,有一个错误:https ://github.com/jayway/maven-android-plugin/pull/34 ,您需要包含该错误以修复您正在使用的插件,因为该错误要到 3.0 才会修复。这是我使用 2.9.0-SNAPSHOT 为我工作的方法。

  1. 添加指向 http://oss.sonatype.org/content/repositories/jayway-snapshots/ 的 pluginRepository 以获取 2.9.0-SNAPSHOT
  2. 更新您的插件版本以使用 2.9.0-SNAPSHOT 并将 <coreLibrary>true</coreLibrary> 添加到 pom.xml
  3. 得到修复: git clone https://github.com/kevinpotgieter/maven-android-plugin.git
  4. 删除 src/test/java/com: 所以测试不会失败
  5. mvn包
  6. 复制它并在 .m2 中覆盖您的本地 Maven 缓存(您可能需要删除您的插件存储库,您的每次都会被覆盖。)

修复进入 2.9.0-SNAPSHOT 后,步骤 3-6 将不再需要。


2010 年 7 月更新:2.9.0-beta-4 已修复,因此如果您使用 2.9.0-beta-4 或更高版本,则不需要上述解决方法。我测试了 2.9.0-beta-5 效果很好。

于 2011-05-21T22:23:35.140 回答
1

Spring Android 使用 Maven 来集成 Simple。看看下面的 URL,它应该提供如何让 Maven 与 Simple 一起工作的指针。

http://static.springsource.org/spring-android/docs/1.0.x/reference/html/rest-template.html

于 2011-06-01T01:03:06.200 回答