Android Maven构建在处理"javax/xml/namespace/QName.class"时遇到问题:

Sam*_*Sam 10 eclipse android maven

每次我执行Project - > Clean时,Maven控制台中都会显示以下错误.只有jar文件在目标文件夹中构建,apk文件没有构建.有谁可以帮我解决这个问题?

问候,

山姆.

我的发展环境是;

  • Eclipse Helios
  • Android SDK API级别8
  • Eclipse ADT 10.0.1
  • 适用于Android开发工具的Maven集成0.2.5

4/30/11 9:54:07 PM IST:[INFO]跳过不存在的resourceDirectory D:\ my\workspace\android\android-test-app\src\test\resources 4/30/11 9:54:07 PM IST:[INFO]未编译测试源4/30/11 9:54:07 PM IST:[INFO]测试被跳过.4/30/11 9:54:07 PM IST:[INFO] D:\ my\android-sdk-my\android-sdk-windows/platform-tools/dx.bat [--dex, - output = D :\ my\workspace\android\android-test-app\target\classes.dex,D:\ my\workspace\android\android-test-app\target\android-classes] 4/30/11 9:54:下午17点IST:[INFO] 4/30/11 9:54:17 PM IST:[INFO]麻烦处理"javax/xml/namespace/QName.class":4/30/11 9:54:17 PM IST: [INFO] 4/30/11 9:54:17 PM IST:[INFO]错误使用或错误使用核心类(java.*或javax.*)4/30/11 9:54:17 PM IST :[INFO]不构建核心库时.4/30/11 9:54:17 PM IST:[INFO] 4/30/11 9:54:17 PM IST:[INFO]这通常是由于无意中包含了一个核心库文件4/30/11 9: 54:17 PM IST:应用程序项目中的[INFO],使用IDE时(例如4/30/11 9:54:17 PM IST:[INFO] Eclipse).如果你确定你不是故意定义IST:[INFO]核心课程的4/30/11 9:54:17 PM,那么这就是4/30/11 9:54:17 PM的最可能的解释IST:[INFO]继续.4/30/11 9:54:17 PM IST:[INFO] 4/30/11 9:54:17 PM IST:[INFO]但是,您实际上可能正在尝试在核心中定义一个类4/30/11 9:54:17 PM IST:[INFO]命名空间,你可能已经采取的来源,例如,4/30/11 9:54:17 PM IST:来自非Android虚拟机项目的[INFO] .这将是大多数4/30/11 9:54:17 PM IST:[INFO]肯定不起作用.至少,它会危害您的应用程序与该平台的未来版本的4/30/11 9:54:17 PM IST:[INFO]兼容性.4/30/11 9:54:17 PM IST:[INFO]通常也有可疑的合法性.4/30/11 9:54:17 PM IST:[INFO] 4/30/11 9:54:17 PM IST:[INFO]如果你真的打算建立一个核心库 - 只有4/30/11 9:54:17 PM IST:[INFO]适合作为创建完整虚拟机的一部分4/30/11 9:54:17 PM IST:[INFO]分发,而不是编译应用程序 - 然后使用4/30/11 9:54:17 PM IST:[INFO]"--core-library"选项以禁止显示此错误消息.4/30/11 9:54:17 PM IST:[INFO] 4/30/11 9:54:17 PM IST:[INFO]如果您继续使用"--core-library"但实际上是4/30/11 11:54:17 PM IST:[INFO]建立一个应用程序,然后预先警告你的申请4/30/11 9:54:17 PM IST:[INFO]仍然无法建立或运行,一点.请在4/30/11 9:54:17 PM IST:[INFO]为愤怒的客户做好准备,例如,你的4/30/11 9:54:17 PM IST:[INFO]申请停止运作一旦他们升级了他们的运营4/30/11 9:54:17 PM IST:[INFO]系统.你应该为这个问题负责.4/30/11 9:54:17 PM IST:[INFO] 4/30/11 9:54:17 PM IST:[INFO]如果你合法地使用恰好在4/30/11的代码9:54:17 PM IST:[INFO]核心包,然后最简单的安全替代方案是4/30/11 9:54:17 PM IST:[INFO]重新包装该代码.也就是说,将有问题的类移到4/30/11 9:54:17 PM IST:[INFO]你自己的包命名空间.这意味着它们将永远不会出现在4/30/11 9:54:17 PM IST:[INFO]与核心系统类冲突.JarJar是一个可以帮助4/30/11 9:54:17 PM的工具IST:[INFO]你在这方面的努力.如果你发现你不能这样做,那么4/30/11 9:54:17 PM IST:[INFO]表明你所在的路径最终将于4/30/11 9:54:17 PM IST :[INFO]导致痛苦,痛苦,悲伤和悲伤.4/30/11 9:54:17 PM IST:[INFO] 4/30/11 9:54:17 PM IST:[INFO] 1错误; 中止

小智 16

如果你正在使用android maven集成,你应该在你的android sdk依赖项中添加"提供"范围.

<dependency>        
<groupId>com.google.android</groupId>        
<artifactId>android</artifactId>        
<version>2.3.3</version>        
<scope>provided</scope>        
</dependency>
Run Code Online (Sandbox Code Playgroud)


lev*_*vsa 14

您可以使用exclude-tag排除隐式依赖项.QName似乎在例如xpp3包中.我通过将以下排除项添加到我的pom(已经包含对google-api-client-googleapis的依赖项)来解决了这个问题:

<dependency>
  <groupId>com.google.api.client</groupId>
  <artifactId>google-api-client-googleapis</artifactId>
  <version>1.4.1-beta</version>
  <exclusions>
    <exclusion>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
    </exclusion>
    <exclusion>
      <groupId>xpp3</groupId>
      <artifactId>xpp3</artifactId>
    </exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果您需要查找冲突类文件的来源,请运行以下示例:

for x in `find ~/.m2/repository/ -name \*.jar`; do jar tf $x|grep QName.class && echo "Found in: $x"; done`
Run Code Online (Sandbox Code Playgroud)