2011-05-11 10 views
14

Estoy trabajando en una aplicación para Android utilizando Maven como herramienta de compilación. Logré establecer la actualización correctamente (las dependencias de maven se exportan al apk, etc.), sin embargo, tengo un problema restante que me está volviendo loco.Android: error que incluye/reempaquetar dependencias que hacen referencia a las clases centrales javax

quiero incluir una dependencia de simpleframework's xml parser definida como sigue en mi archivo POM:

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

Cuando expido mvn install en el proyecto, me sale el siguiente error (truncada):

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

Conozco los resultados de error del analizador xml simple que hace referencia a estas clases javax, sin embargo, todavía no he encontrado una solución (la configuración del marcador de la base de -core no sirve de nada).

Actualmente estoy tratando de volver a empaquetar la dependencia con el maven-jarjar-pluging, pero esto tampoco parece funcionar.

¿Puede alguien ayudarme con esto? Muchas, muchas gracias de antemano!

Respuesta

28

definir su depedency sencilla en XML como esto:

<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> 
+0

Gracias por su respuesta. Actualmente no estoy trabajando en el proyecto, pero lo tendré en cuenta para usarlo en el futuro. Si funciona entonces, volveré y me aseguraré de aceptar esta respuesta :) – thomaux

+3

¡Funciona hombre!Acepte la respuesta de Marcin :) –

+0

Probando esta solución, pero todavía tengo un error org.simpleframwork.xml.core.Persister no encontrado. –

2

utilizo android-maven-plugin, y añadiendo a la etiqueta <coreLibrary>true</coreLibrary><configuration> del plugin en el POM funciona para mí. Sin embargo, hay un error: https://github.com/jayway/maven-android-plugin/pull/34, que debe incluir para corregir el complemento que está utilizando, ya que el error no se solucionará hasta 3.0. Así es como lo conseguí trabajando para mí usando 2.9.0-SNAPSHOT.

  1. agregar un señalador pluginRepository a http: // oss.sonatype.org/content/repositories/jayway-snapshots/ para obtener 2.9.0-SNAPSHOT
  2. actualización de la versión plug-in de usar 2.9.0-SNAPSHOT y añadir < coreLibrary> cierto </coreLibrary> a pom.xml
  3. obtener el arreglo: git clone https://github.com/kevinpotgieter/maven-android-plugin.git
  4. quitar src/test/java/com: lo que la prueba no fallará
  5. mvn package
  6. cópielo y sobrescribir la memoria caché experto local en .m2 (Es posible que tenga que quitarse la suya repositorio de plugins se sobreescribe cada vez.)

Paso 3-6 no será necesario después de que la solución se mete en 2.9.0-SNAPSHOT.


actualización de julio de 2010: 2.9.0-beta-4 tiene la solución, por lo que no es necesario la solución anterior si se utiliza 2.9.0-beta-4 o posterior. Probé 2.9.0-beta-5, que funcionó bien.

Cuestiones relacionadas