Android:错误包括/重新打包引用 javax 核心类的依赖项
Posted
技术标签:
【中文标题】Android:错误包括/重新打包引用 javax 核心类的依赖项【英文标题】:Android: error including/repacking dependencies which reference javax core classes 【发布时间】:2011-08-23 07:23:35 【问题描述】:我正在开发一个使用 Maven 作为构建工具的 android 应用程序。我设法正确设置了evertyhing(maven依赖项被导出到apk等),但是我还有一个问题让我发疯。
我想在我的 POM 文件中包含对simpleframework's xml parser 的依赖项,定义如下:
<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-classes 的简单 xml 解析器导致的,但是我还没有找到解决方案(设置 --core-library 标志没有用)。
我目前正在尝试使用 maven-jarjar-pluging 重新打包依赖项,但这似乎也不起作用。
谁能帮我解决这个问题?非常非常感谢!
【问题讨论】:
【参考方案1】:我使用 android-maven-plugin,并将 <coreLibrary>true</coreLibrary>
添加到 POM 中插件的 <configuration>
标记对我有用。但是,有一个错误:https://github.com/jayway/maven-android-plugin/pull/34,您需要包含它来修复您正在使用的插件,因为该错误要到 3.0 才会修复。以下是我使用 2.9.0-SNAPSHOT 为我工作的方法。
-
添加指向 http://oss.sonatype.org/content/repositories/jayway-snapshots/ 的 pluginRepository 以获取 2.9.0-SNAPSHOT
更新您的插件版本以使用 2.9.0-SNAPSHOT 并将
修复进入 2.9.0-SNAPSHOT 后,步骤 3-6 将不再需要。
2010 年 7 月更新:2.9.0-beta-4 已修复,因此如果您使用 2.9.0-beta-4 或更高版本,则不需要上述解决方法。我测试了 2.9.0-beta-5 效果很好。
【讨论】:
【参考方案2】:像这样定义你的 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>
【讨论】:
感谢您的回复。我目前没有从事这个项目,但我会记住它以备将来使用。如果它有效,我会回来并确保接受这个答案:) 尝试这个解决方案,但我仍然有一个 org.simpleframwork.xml.core.Persister not found 错误。 @Henryk Konsek 你在哪里放置这样的 xml 依赖项?什么文件夹?【参考方案3】:Spring Android 使用 Maven 来集成 Simple。看看下面的 URL,它应该提供关于如何让 Maven 与 Simple 一起工作的指针。
http://static.springsource.org/spring-android/docs/1.0.x/reference/html/rest-template.html
【讨论】:
以上是关于Android:错误包括/重新打包引用 javax 核心类的依赖项的主要内容,如果未能解决你的问题,请参考以下文章
在 android 中引用 javax.script.ScriptEngine 或评估 javascript 表达式