2012-04-10 17 views

Respuesta

9

Después de buscar a través de varios foros, Google y stackoverflow, parezco obtener una solución por mí mismo y pensé en compartirla.

  1. Cada vez que se vincula bibliotecas externas, vincular mejor mediante la creación de una carpeta/lib y volcar esos .jars allí (medio para copiar archivos y no vinculándolos). Vincúlelos usando Eclipse -> Propiedades de compilación -> Configurar ruta de acceso de compilación -> Pestaña Biblioteca -> Agregar tarros externos. Agregue los .jars necesarios guardados en la carpeta/lib en esto. (Tenga en cuenta que el contenedor incluido como "Biblioteca referenciada" en Eclipse desaparecerá en la carpeta/lib! Pero no se preocupe, ya que se ha producido una vinculación adecuada. Otra nota es comprobar que el archivo/lib al que se hace referencia NO debe ser visible en la pestaña Bibliotecas de Propiedades de compilación, ya que se heredará).

  2. Otro problema importante fue cuando se utilizan API de Google. Especialmente los que usan algunas funciones básicas de biblioteca de java/javax. Ten mucho cuidado con esto El error es que, DalvikVM intenta vincular estos pero falla ya que se ha encontrado una duplicación y no puede decidir a cuál referirse. A continuación está el error.

    Dx trouble processing "javax/xml/namespace/QName.class": 
    Ill-advised or mistaken usage of a core class (java.* or javax.*) when not building a core library. 
    

En tales casos, lo que he observado es que, esta clase se utiliza en xpp3-1.1.4c.jar. Si ha copiado esto en su carpeta/lib, POR FAVOR QUÍELO. Luego, limpie el proyecto y genere nuevamente. Y el barco navega suavemente después de eso.

Haga esto para otros archivos .jar mencionados si existe dicha duplicación.

¡Salud!

+0

Gracias Muy Muy Mucho ...... –

+0

Tu publicación ha sido resuelta Mi gran problema .... Gracias de nuevo y no puedo votar tantas veces lo siento –

+0

Muchas gracias, has resuelto mi problema ¡¡también!! – Crocodile

2

Esto funcionó para mí. Estoy usando maven, y la dependencia xpp3-1.1.4c aparece en "Dependencias Maven"; Tuve que excluirlo usando (clic derecho en la dependencia) Maven-> "Excluir artefacto Maven ...". Muchas gracias, esto fue realmente oscuro.

1

Este error se muestra solo cuando intenta generar APK firmado. Hay 2 formas de arreglar esto.

1. Como comentó Amira Elsayed Ismail en esta publicación this debemos volver a gradle 2.3.3.

Para hacer esto también se debe descargar de Android Studio 2.3.3 3.0.1 debido estudio requieren plug-in Gradle 3.0+

Esta fue la primera solución. Pero revertir Android Studio y plugins de gradle es una solución dolorosa.

2.Resuelva todos los conflictos de dependencia.

Cuando revertir gradle, Studio 2.3.3 mostró advertencias de interés (no sé por qué studio 3.0.1 no muestran advertencias dependencias y conflictos)

Warning:WARNING: Dependency xpp3:xpp3:1.1.4c is ignored for debug as it may be conflicting with the internal version provided by Android. Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.3.3 is ignored for debug as it may be conflicting with the internal version provided by Android.

Así que estas dependencias se ignoran para depuración, pero NO DIFUNDIR. Lo solucioné excluyendo estas dependencias.

configurations { 
     all*.exclude group: 'xpp3', module: ['xpp3' ,'httpclient'] 
    } 

Después de esto, generé correctamente la APK firmada usando gradle 3.0.1. (sin revertir).

+2

Proporcione información sobre cómo el código anterior responde la pregunta para mejorar esta respuesta. –

+0

@EricHauenstein He actualizado la respuesta. –

Cuestiones relacionadas