Pregunta "La conversión a formato Dalvik falló con el error 1" en JAR externo


En mi aplicación para Android en Eclipse, recibo el siguiente error.

EXCEPCIÓN INESPERADA DE NIVEL SUPERIOR:
  java.lang.IllegalArgumentException: ya agregado: Lorg / xmlpull / v1 / XmlPullParser;
  ....
  La conversión a formato Dalvik falló con el error 1

Este error solo aparece cuando agrego un archivo JAR externo específico a mi proyecto. Busqué durante mucho tiempo la posible solución, pero ninguna de las soluciones posibles funciona. Incluso traté de cambiar a Android 1.6 en lugar de 1.5 (la versión actual que uso).


880


origen


Respuestas:


Vaya a Proyecto »Propiedades» Ruta de compilación de Java »Bibliotecas y elimine todo, excepto el" Android X.Y "(en mi caso, Android 1.5). haga clic en Aceptar. Vaya a Proyecto »Limpiar» Proyectos limpios seleccionados a continuación »seleccione su proyecto y haga clic en Aceptar. Eso debería funcionar.

También es posible que tenga un archivo JAR ubicado en alguna parte de las carpetas de su proyecto (copié el archivo Admob JAR en mi carpeta src) y LUEGO lo agregó como una Biblioteca de rutas Java. No se muestra en el Explorador de paquetes, por lo que no lo notas, pero sí se cuenta dos veces, lo que provoca el temible error 1 de Dalvik.

Otra posible razón podría ser conflictos de nombres de paquetes. Supongamos que tiene un paquete com.abc.xyz y una clase llamada A.java dentro de este paquete, y otro proyecto de biblioteca (que se agrega a la dependencia de este proyecto) que contiene el mismo com.abc.xyz.A.java, entonces obtendrá exactamente el mismo error. Esto significa que tiene múltiples referencias al mismo archivo A.java y no puede construirlo apropiadamente

En otras formas, esto puede ocurrir si accidentalmente o a sabiendas edita / agrega cualquier cosa en el archivo de ruta de clase manualmente. En ciertos casos, podemos agregar la ruta android.jar manualmente al archivo classpath para generar el documento javadoc. Luego de eliminar el javadoc generado el código funcionará bien. Compruebe esto también si todavía se produce alguno.


821



Resolví el problema.

Este es un conflicto de archivo JAR.

Parece que tengo dos archivos JAR en mi buildpath que incluyen el mismo paquete y clases.

smack.jar y android_maps_lib-1.0.2

Eliminar este paquete de uno de los archivos JAR resolvió el problema.


270



Solución de Windows 7:

Confirmado que el problema es causado por la línea de comando de ProGuard en el archivo
[Directorio de instalación de Android SDK] \ tools \ proguard \ bin \ proguard.bat

Editar la siguiente línea resolverá el problema:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

a

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

125



Puede resolver este problema fácilmente (con Eclipse Android Developer Tools, Build: v22.0.1-685705), desactive el menú> "Proyecto"> "Crear automáticamente" mientras exporta la aplicación de Android (no). Después de eso, no olvides volver a encenderlo.


94



Si tiene la revisión ADT 12+, debe actualizar su proguard de 4.4 -> 4.6 (como se describe aquí) Además, debe dejar el archivo ... \ bin \ proguard.bat en su forma original.

Simplemente descárguelo de la web y copie la carpeta lib desde el paquete descargado a:

[Directorio de instalación de Android SDK] \ tools \ proguard \ lib


53



EDITAR (nueva solución):

Parece que la solución anterior es solo un bypass. Logré finalmente solucionar el problema de forma permanente: En mi caso, había una discrepancia en los archivos android-support-v4 en mi proyecto y en el proyecto de Facebook al que se hace referencia en mi proyecto.

Encontré este error realizando Lint Check (Herramientas Android / Ejecutar pelusa: comprobar si hay errores comunes)

Mi solución anterior:

He intentado cualquier posible solución en este sitio, ¡nada ayudó!

Finalmente he encontrado una respuesta aquí: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4

Pasos faciles:

Ir a Proyecto -> desmarcar Crear automáticamente

Vaya a Proyecto -> Limpiar ..., limpie tanto el proyecto de la biblioteca como su   proyecto de la aplicación

Exporta tu aplicación como una APK firmada mientras Build es automático.   discapacitado


40



Aquí hay otro escenario y solución:

Si se encuentra con este problema recientemente después de actualizar el ADT para Eclipse:

  1. En su proyecto de aplicación, busque las carpetas de origen vinculadas que apuntan a sus proyectos de biblioteca (tienen nombres en el formato "LibraryName_src").
  2. Seleccione todos esos proyectos, haga clic derecho, elija "Construir camino"->"Eliminar de Build Path".
  3. Escoger "Desenlazar también la carpeta del proyecto", y haga clic en"".
  4. Limpiar, reconstruir y volver a implementar el proyecto.

Parece que la razón es que alguna versión previa de ADT vinculó las carpetas de origen del proyecto de la Biblioteca a los proyectos "secundarios", y la combinación actual de ADT / Dex ya no es compatible con esa solución.

EDITAR: esto es confirmado por una entrada de Android Dev Blog, específicamente éste - ver el 8 ° párrafo en adelante.


30



Vaya a Proyecto y luego desmarque "Crear automáticamente". Luego intente exportar el proyecto y el error desaparecerá.


29