En mi aplicación de Android en Eclipse me sale el siguiente error.
EXCEPCIÓN INESPERADA DE NIVEL SUPERIOR:
java.lang.IllegalArgumentException: ya agregado: Lorg / xmlpull / v1 / XmlPullParser;
.... La
conversión al 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 posibles soluciones funciona.
Incluso intenté cambiar a Android 1.6 en lugar de 1.5 (la versión actual que uso).
android
dalvik
android-sdk-1.6
Michel
fuente
fuente
Respuestas:
Vaya a Proyecto »Propiedades» Ruta de compilación de Java »Bibliotecas y elimine todo excepto el" Android XY "(en mi caso, Android 1.5). haga clic en Aceptar. Vaya a Proyecto »Limpiar» Limpiar proyectos 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 algún lugar de las carpetas de su proyecto (había copiado el archivo JAR de Admob en mi carpeta src) y ENTONCES lo agregué como una Biblioteca de rutas de Java. No aparece debajo del Explorador de paquetes, por lo que no lo nota, pero se cuenta dos veces, lo que causa el temido error 1 de Dalvik.
Otra posible razón podría ser conflictos de nombre de paquete. Suponga que tiene un paquete
com.abc.xyz
y una clase nombradaA.java
dentro de este paquete, y otro proyecto de biblioteca (que se agrega a la dependencia de este proyecto) que contiene el mismocom.abc.xyz.A.java
, entonces obtendrá exactamente el mismo error. Esto significa que tiene múltiples referencias al mismo archivoA.java
y no puede compilarlo correctamente.En otras formas, esto puede ocurrir si accidentalmente o deliberadamente edita / agrega cualquier cosa en el archivo de ruta de clase manualmente. En ciertos casos, podemos agregar la ruta android.jar manualmente al archivo de ruta de clase para generar java doc. Al eliminar eso después de que javadoc generó el código funcionará bien.Compruebe esto también si todavía se produce alguno.
fuente
Resolví el problema.
Este es un conflicto de archivos JAR.
Parece que tengo dos archivos JAR en mi buildpath que incluyen el mismo paquete y clases.
smack.jar
yandroid_maps_lib-1.0.2
Eliminar este paquete de uno de los archivos JAR resolvió el problema.
fuente
ScoreloopUI
proyecto a mi juego de AndEngine, estos frascos también interfieren con los suyos, aunque no estén en la ruta de compilación de su propio proyecto.Solución de Windows 7:
Confirmó que el problema es causado por la línea de comando de ProGuard en el archivo
[Directorio de instalación del SDK de Android] \ tools \ proguard \ bin \ proguard.bat
Editar la siguiente línea resolverá el problema:
a
fuente
Puede resolver este problema fácilmente (con Eclipse Android Developer Tools, Build: v22.0.1-685705) desactivando el menú> "Proyecto"> "Construir automáticamente" mientras exporta la aplicación de Android (no firmada). Después de eso, no olvide encenderlo de nuevo.
fuente
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 la forma original.
Simplemente descárguelo de la web y copie la carpeta lib del paquete descargado en:
[Directorio de instalación del SDK de Android] \ tools \ proguard \ lib
fuente
<sdk>/tools/proguard
directorio antiguo y moví elproguard4.11
directorio completo descomprimido a la ruta anterior. Voila! Ahora, si pudiera recuperar mi hora anterior ... -_-EDITAR (nueva solución):
Parece que la solución anterior es solo una derivación. Finalmente pude solucionar el problema permanentemente: en mi caso, hubo una falta de coincidencia 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 de Android / Ejecutar Lint: Verificar errores comunes)
Mi solución anterior:
He intentado cualquier solución posible en este sitio, ¡nada ayudó!
Finalmente encontré una respuesta aquí: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4
Pasos faciles:
fuente
Aquí hay otro escenario y solución:
Si se encuentra con este problema recientemente después de actualizar el ADT para Eclipse:
Parece que la razón es que alguna versión anterior de ADT vinculaba las carpetas de origen del proyecto de la Biblioteca con los proyectos "secundarios", y la combinación actual de ADT / Dex ya no es compatible con esa solución.
EDITAR: esto está confirmado por una entrada de Android Dev Blog, específicamente esta , vea el octavo párrafo en adelante.
fuente
Vaya a Proyecto y luego desmarque "Construir automáticamente". Luego intente exportar el proyecto y el error desaparecerá.
fuente
Esto también puede ser causado si ha agregado un
Android.jar
archivo a su ruta de compilación, tal vez por una solución rápida accidental en Eclipse. Elimínelo haciendo clic con el botón derecho en Proyecto -> ruta de compilación -> configurar ruta de compilación -> android.jar , eliminar.fuente
Simplemente limpiar el proyecto me ha funcionado cada vez que aparece este error.
fuente
Mi propia y única solución que encontré hoy después de cuatro horas de probar todas las soluciones, es una combinación de muchas soluciones proporcionadas aquí:
Delete
proyecto de Eclipse\bin
y\gen
desde la carpeta del proyecto.classpath
archivo en la carpeta del proyecto raízeclipse -clean
Import
proyectoProperties
>Java Build Path
>Libraries
y quite todo lo demás queAndroid XX.Y
clean
proyecto, espere Edificio automático oBuild
seIntenté cada paso a la vez y muchas combinaciones, ¡pero solo la sucesión de todos los pasos a la vez lo hizo! Espero no enfrentar esto de nuevo ...
fuente
bin
carpeta lo hizo por mí.Solo para las otras personas que todavía tienen este problema y que han intentado las respuestas anteriores pero aún obtienen el error (que fue mi caso), entonces mi solución fue eliminar el proyecto de Eclipse y volver a importarlo nuevamente.
Esto hizo que la biblioteca de Android se agregara nuevamente a mis bibliotecas referenciadas, por lo que ahora tengo dos archivos JAR de Android referenciados, por lo tanto, eliminé uno de ellos y ahora se compila bien.
Solución: elimine el proyecto de Eclipse IDE y luego vuelva a importarlo, luego verifique las soluciones anteriores.
fuente
Me encontré con este problema hoy mismo. La limpieza y reconstrucción no solucionó el problema. Eliminar y volver a importar el proyecto tampoco ayudó.
Finalmente lo rastreé hasta las malas adiciones a mi archivo .class. Creo que esto fue agregado por las herramientas del complemento cuando estaba tratando de solucionar otro problema, al eliminarlo se eliminó el error de compilación "La conversión al formato Dalvik falló con el error 1":
fuente
Para mí, una referencia JAR adicional había aparecido en mi ruta de compilación. Eliminé esto, y funciona ahora.
fuente
Mi problema fue causado por ADT versión 12.0 y la integración de ProGuard. Este error está bien documentado y la solución está en la documentación.
La solución está aquí
Línea de comando ProGuard
fuente
He tratado este problema al usar la biblioteca Sherlock ActionBar en mi proyecto. Podrías hacer el siguiente paso, es trabajo para mí.
Espero que te ayude.
fuente
En mi caso, el problema es en realidad con el proyecto OpenFeint API. He agregado OpenFeint como proyecto de biblioteca:
.
También se agrega a la ruta de compilación, las herramientas ADT 16 dan error con este escenario.
Haga clic derecho en su proyecto y haga clic en la ruta de compilación, configure la ruta de compilación y luego vea la imagen y elimine su proyecto OpenFeint de aquí y todo está hecho :)
fuente
Encontré algo más. Android usa el
/libs
directorio para archivos JAR. He visto el error "La conversión al formato Dalvik falló con el error 1" varias veces, siempre cuando cometí un error en mis archivos JAR.Ahora actualicé Roboguice a una versión más nueva, colocando el nuevo archivo JAR en el
/libs
directorio y cambiando la ruta de clase a la nueva versión. Eso causó el error de Dalvik.Cuando eliminé uno de los archivos JAR de Roboguice de la
/libs
carpeta, el error desapareció. Aparentemente, Android recoge todos los archivos JAR/libs
, independientemente de los que especifique en la ruta de compilación de Java. No recuerdo exactamente, pero creo que Android comenzó a usar/libs
por defecto a partir de Android 4.0 (Ice Cream Sandwich, ICS).fuente
La actualización de Proguard a la última versión lo resolvió para mí.
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
¡GRACIAS A DIOS!
fuente
En general, parece que este problema surge cuando hay archivos JAR innecesarios en la ruta de compilación.
Enfrenté este problema mientras trabajaba en IntelliJ IDEA . Para mí sucedió porque agregué las bibliotecas JUnit y Mockito que se estaban compilando en tiempo de ejecución. Esto tenía que establecerse en "prueba" en las propiedades del módulo.
fuente
Ninguna de las soluciones propuestas anteriormente funcionó para mí. En mi caso, el problema ocurrió cuando cambié de hacer referencia a una carpeta de código fuente de la biblioteca para usar el archivo JAR de la biblioteca. Inicialmente, había un proyecto de biblioteca de Android en la sección Propiedades del proyecto de aplicación de Android \ Página de Android \ Biblioteca, y la biblioteca se comparó también en el árbol del explorador de proyectos como un enlace al directorio de origen de la biblioteca.
En primer lugar, acabo de eliminar el enlace del directorio del árbol del proyecto y agregué la biblioteca JAR a la ruta de compilación, pero esto causó la excepción.
El procedimiento correcto fue (después de cambiar la ruta de compilación y volver a colocar la referencia a la fuente de la biblioteca):
elimine correctamente el enlace del directorio de origen de la biblioteca eliminando realmente la referencia del proyecto de la aplicación Propiedades \ Página de Android
agregando la biblioteca JAR a la ruta de compilación del proyecto de la aplicación como de costumbre.
fuente
Ninguna de las soluciones enumeradas funcionó para mí.
Aquí es donde estaba teniendo un problema:
Agregué el archivo JAR externo jSoup a la ruta de mi proyecto primero colocándolo en una carpeta de origen llamada "libs", y luego haciendo clic derecho sobre él, Build Path -> add to build path. Esto arrojó el error de conversión Dalvik. Decía que "ya había incluido" una clase de ese archivo JAR. Miré alrededor del directorio del proyecto y descubrí que el lugar donde estaba "ya incluido" era de hecho el
bin
directorio. ¡Eliminé el archivo JAR delbin
directorio y actualicé el proyecto en Eclipse y el error desapareció!fuente
Todas las soluciones anteriores no funcionaron para mí. No estoy usando ningún .jar precompilado. Estoy usando el LVL y los errores de Dalvik donde todos estaban relacionados con la biblioteca de licencias del mercado.
El problema se resolvió eliminando el proyecto principal y reimportando (cree un nuevo proyecto a partir de fuentes existentes).
fuente
Tuve el mismo problema y ninguna de estas soluciones funcionó. Finalmente, vi en la consola que el error se debió a una clase duplicada (una en el proyecto existente, otra en el archivo jar agregado):
Así que verifique si está agregando jar con clases duplicadas en su proyecto. En caso afirmativo, intente eliminar uno de ellos.
Funcionó para mi.
fuente
A menudo, para mí, limpiar el proyecto NO soluciona este problema.
Pero cerrar el proyecto en Eclipse y luego volver a abrirlo parece solucionarlo en esos casos ...
fuente
Me encontré con este problema, pero mi solución fue doble. 1.) Tuve que agregar una versión de destino de Android en proyecto -> propiedades -> Android . 2.) No tenía todos los "complementos de terceros" de Google. Haga clic en el Administrador de AVD SDK bajo paquetes disponibles -> terceros add-ons -> Google Inc . Descargué todos los SDK y eso resolvió mi problema.
fuente
Estoy usando Android 1.6 y tenía un archivo JAR externo. Lo que funcionó para mí fue eliminar todas las bibliotecas, hacer clic con el botón derecho en el proyecto y seleccionar Herramientas de Android -> * Reparar propiedades del proyecto (que agregó Android 1.6) y luego volver a agregar el archivo JAR externo.
fuente
Me encontré con este problema porque el complemento Android-Maven en Eclipse aparentemente no reconocía referencias transitivas y referencias referenciadas dos veces de un par de proyectos (incluido un proyecto de biblioteca de Android), e incluyéndolos más de una vez. Tuve que usar hocus-pocus para incluir todo solo una vez, aunque se supone que Maven se ocupará de todo esto.
Por ejemplo, tenía una biblioteca central globalmentor-core, que también fue utilizada por globalmentor-google y globalmentor-android (la última de las cuales es una biblioteca de Android). En globalmentor-android
pom.xml
, tuve que marcar la dependencia como "proporcionada", así como excluida de otras bibliotecas en las que se incluía de forma transitiva:Luego, en la aplicación final,
pom.xml
tuve que usar el truco correcto para permitir solo una ruta de inclusión, así como no incluir explícitamente la biblioteca principal:fuente
<extractDuplicates>true</extractDuplicates>
en el complemento android-maven se solucionó el problema,mvn install
pero no demvn deploy
dónde obtuve el error descrito ... realmente extrañoEn mi caso
proyecto-> propiedades-> ruta de compilación java -> en orden y pestaña de exportación -> desmarque android-support-v4.jar
fuente
Solo limpia el proyecto
Si esto no funciona, pruebe las otras soluciones
fuente