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

908

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).

Michel
fuente
Este artículo puede ayudarlo a corregir este error en caso de que use un proyecto de biblioteca en su espacio de trabajo.
Nguyen Minh Binh
44
Intenté esto y me dio el mismo error. Finalmente lo arreglé agregando la biblioteca en Propiedades-> JavaBuildPath-> Proyectos y agregué la biblioteca allí. Se llama "Objetos necesarios en la ruta de compilación:".
27
Este problema se ha vuelto brutal para mí. Es casi suficiente renunciar a la codificación de Android. Ninguna de las soluciones funciona para mí. Simplemente tengo que intentar exportar continuamente fallando con el error 1 de Dalvik y eventualmente tendrá éxito. Tarda entre 15 y 30 minutos en realizar una compilación de lanzamiento. Es un completo desastre.
Anthony
Si usa dos computadoras en un espacio de trabajo con un software para compartir archivos, a veces duplica el espacio de trabajo-> project-> bin-> com como com 1, com 2. Simplemente elimine todo con 1 o 2, limpie su proyecto y estará listo. ir.
Ozan Atmar

Respuestas:

826

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.xyzy una clase nombrada A.javadentro 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.javay 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.

usuario408841
fuente
44
Tuve el mismo problema y los pasos anteriores de user408841 me funcionaron.
Arunabh Das
112
Hola. Me soluciona simplemente yendo a "Proyecto» Limpiar »Limpiar proyectos seleccionados a continuación» seleccione su proyecto y haga clic en Aceptar ". ignorando el primer bit
Kurru
79
Estoy bastante confuso con esta solución. Si elimina todos los archivos jar y bibliotecas, ¿cómo va a compilar el proyecto con éxito?
Cheok Yan Cheng
3
¡Encontré que la única forma en que esto funcionó para mí fue LIMPIAR TODOS LOS PROYECTOS! Especialmente de los que depende el proyecto infractor.
Roy Hinkley
77
Soy nuevo en el desarrollo de Android proveniente de .NET, y para ser sincero, este error resume mi experiencia con él. En serio ... ¿qué se supone que debes hacer con ese mensaje de error? Es totalmente sin sentido. 'Dalvik'? ¿¿Tu que?? Llévame de vuelta al estudio visual: p
David Masters
271

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 y android_maps_lib-1.0.2

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

michel
fuente
18
+1: en resumen, este es un conflicto de archivos JAR. Específicamente, esto podría ser un conflicto en cualquiera de los dos archivos JAR. En mi caso, el conflicto fue entre jackson-all-1.7.4.jar, jackson-core-asl-1.5.4.jar y jackson-mapper-asl-1.5.4.jar. Quité los dos JAR 1.5.4 y dejé el 1.7.4 todos.
jmort253
Si tiene frascos en cualquier proyecto de biblioteca que haya agregado en su propio proyecto, como cómo agregué el ScoreloopUIproyecto 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.
pqn
1
Había especificado android-sdk / plataformas / android-10 / android.jar manualmente en .classpath, luego cambié a 2.3.3 (Android 10) en las propiedades del proyecto, lo que causó que ambos android.jar entraran en conflicto. La eliminación del extra en Java Build Path hizo el truco
styler1972
2
Por mi parte, el conflicto vino del ActionbarSherlock que ya incluye el paquete de soporte de Android que git incluyó dos veces.
Tobias
Solo para información: en mi caso, debido a la falla, fue que el objetivo de Android diferente no era el mismo en ambos proyectos: android: targetSdkVersion = "xx"
Andreas Mattisson
126

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:

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
Noé
fuente
esto no funcionó para mí, pero comentar la línea de protección desde mi archivo default.properties hizo que el error desapareciera. mi problema parece estar relacionado con proguard de alguna manera. Solo estaba obteniendo un error "La conversión a formato Dalvik falló con el error 1" al intentar exportar el proyecto. ¿Alguna idea?
Ben H
Intenté la sugerencia anterior nuevamente, eliminé y volví a agregar mi proyecto de biblioteca LVL, y ahora funciona. No estoy seguro de qué lo solucionó exactamente, pero funciona. gracias a Dios. Perdí horas en esto.
Ben H
Windows Vista, y esto funcionó para mí. Anteriormente había intentado cambiar la ruta del SDK a progra ~ 2, reinstalar, limpiar el proyecto, eliminar las bibliotecas y corregir, etc. ¡Así que gracias Noah!
Mudar
Muchas gracias Noah, esto funcionó para mí también en Windows 7. El error comenzó después de actualizar ADT a la versión 12.
Kevin
Solucionado mi problema en Windiws 7.
poiuytrez
94

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.

Ton Snoei
fuente
2
Esto lo resolvió en mi caso. De lo contrario, el problema ocurre esporádicamente y sin una causa definitiva (por ejemplo, una jarra o un camino incorrectos)
Dirk Conrad Coetsee
¡Esto me estaba volviendo loco! A la única solución que funcionó para mí. Preguntarse por qué.
PrivusGuru
1
Esto me resolvió: otras soluciones también podrían haber ayudado, pero esta fue la última antes de que funcionara.
pertz
Pasé 4 horas trabajando en cada sugerencia que pude encontrar y finalmente llegué a esta. Gracias, resolvió el problema de inmediato.
Squonk
Solución muy simple, pero funciona! Me ahorró unas horas de lucha sin sentido con Eclipse. Pruébelo antes de probar cualquier solución más complicada.
fragon
53

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

Kocus
fuente
3
Este ha sido mi problema en múltiples ADT. La descarga y el reemplazo de los JAR proguard funciona.
Sr. S
Wow, gracias, esto me lo arregló, aunque también necesitaba aclarar algunas advertencias. stackoverflow.com/q/4525661/38258
Nick Gotch
Cambié la versión Proguard de 4.4 a 4.9, después de eso mi problema aún no se resolvió.
Hiren Patel
1
Solo tenía que hacer esto yo mismo, pasando de 4.7 -> 4.11 (el más reciente a partir de ahora aquí: sourceforge.net/projects/proguard/files ). Acabo de cambiar el nombre del <sdk>/tools/proguarddirectorio antiguo y moví el proguard4.11directorio completo descomprimido a la ruta anterior. Voila! Ahora, si pudiera recuperar mi hora anterior ... -_-
qix
1
¡Gracias! Esto resuelve mi problema bien. Mi problema es causado cuando actualizo mi sdk desde el administrador de sdk y el proguard se ha restablecido a la versión original que venía con el nivel 11 de la API. Después de actualizar el proguard, jar a la última versión. ¡y funciona! Mi referencia: java.dzone.com/articles/my-reminder-how-fix-conversion
mmw5610
41

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:

Vaya a Proyecto -> desmarque Construir automáticamente

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

Exporte su aplicación como un APK firmado mientras Build Automatically todavía está deshabilitado

Paveliko
fuente
Gracias, trabajaste para mí para mi proyecto cocos2dx js usando adt eclipse 23
snowflakes74
Error: opción desconocida '0409' en el argumento número 1
Iman Marashi el
30

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, verifique si hay carpetas de origen vinculadas que apuntan a los proyectos de su biblioteca (tienen nombres en el formulario "LibraryName_src").
  2. Seleccione todos esos proyectos, haga clic derecho, elija " Crear ruta " -> " Eliminar de la ruta de compilación ".
  3. Elija " También desvincular la carpeta del proyecto " y haga clic en " ".
  4. Limpie, reconstruya y vuelva a implementar el proyecto.

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.

TheTerribleSwiftTomato
fuente
1
Esta es, con mucho, la respuesta más útil a mi problema particular . ¡¡¡Muchas gracias!!!
Bill The Ape
Esto es lo que podría usar con éxito, no la respuesta altamente votada por el usuario 408841.
rics
29

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

kgandroid
fuente
27

Esto también puede ser causado si ha agregado un Android.jararchivo 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.

Tom Dignan
fuente
25

Simplemente limpiar el proyecto me ha funcionado cada vez que aparece este error.

BTR
fuente
Reiniciar Eclipse + limpiar el proyecto + la creación manual funcionó para mí.
dodgy_coder
La limpieza funcionó para mí ... así que si tiene una buena compilación de depuración que ha estado ejecutando en teléfonos reales y luego vaya a liberar exportación y vea este error ... primero intente limpiar todos los proyectos.
lepert
16

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
  • Eliminar archivos en \biny \gendesde la carpeta del proyecto
  • Eliminar referencias a bibliotecas en el .classpatharchivo en la carpeta del proyecto raíz
  • Reinicie Eclipse con la línea de comando: eclipse -clean
  • Import proyecto
  • Haz clic derecho en el proyecto - seleccionar Properties> Java Build Path> Librariesy quite todo lo demás queAndroid XX.Y
  • Por último cleanproyecto, espere Edificio automático o Buildse
  • Lanzamiento y ahora funciona! Al menos para mi...

Intenté 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 ...

Darkendorf
fuente
Hubo una advertencia de un usuario anónimo de que esto tuvo resultados desastrosos. ¡Intente bajo su propio riesgo!
PaulG
me funcionó pero no lo hice: "eclipse -clean" y no eliminé las bibliotecas.
NicoMinsk
Eliminar la bincarpeta lo hizo por mí.
boltup_im_coding
14

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.

Peter Mortensen
fuente
¡Gracias! Esto me ayudó a salir de cero.
herbertD
10

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":

<classpathentry kind="lib" path="C:/dev/repository/android-sdk-windows/platforms/android-3/android.jar">
    <attributes>
        <attribute name="javadoc_location" value="file:/C:/dev/repository/android-sdk-windows/docs/reference"/>
    </attributes>
    <accessrules>
        <accessrule kind="nonaccessible" pattern="com/android/internal/**"/>
    </accessrules>

Joe Fernández
fuente
9

Para mí, una referencia JAR adicional había aparecido en mi ruta de compilación. Eliminé esto, y funciona ahora.

brux
fuente
8

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

Croc
fuente
Gracias Croc, no creo que el error esté muy bien documentado; no lo encontré después de buscar una solución durante una hora.
Kevin
Probablemente esté escribiendo: el problema es que un solo mensaje de error tiene demasiadas causas. Google debería tener más mensajes para ayudar a los usuarios a delinear el problema. Puede obtener consuelo en el hecho de que me tomó dos días para resolver el problema cuando me encontré con él ...
Croc
El comentario 11 en la página de discusión de errores vinculados resolvió el problema aquí: establezca la salida de compilación en Verbose (desde Ventana> Preferencias> Android> Compilar) y busque JAR o clases que el compilador está usando pero no debería estar allí. Eliminarlos. Experimente construir sin ningún problema nuevamente.
Giulio Piancastelli
8

He tratado este problema al usar la biblioteca Sherlock ActionBar en mi proyecto. Podrías hacer el siguiente paso, es trabajo para mí.

  1. Haga clic derecho en su proyecto, seleccione propiedades.
  2. Aparecerá un cuadro de diálogo, seleccione 'Ruta de compilación de Java' en el menú de la izquierda.
  3. Elimine 'Dependencias de Android' y 'Bibliotecas privadas de Android' en el panel derecho y luego haga clic en Aceptar
  4. Limpia tu proyecto (selecciona el menú Proyecto -> Limpiar)
  5. Haga clic derecho en su proyecto, seleccione Herramientas de Android -> Reparar propiedades del proyecto
  6. Proyecto limpio una vez más.
  7. Reinicia tu computadora
  8. Abrir eclipse y exportar apk

Espero que te ayude.

mvmanh
fuente
Su mensaje de error debería especificarse más. Me ahorras tiempo Gracias.
teapeng
7

En mi caso, el problema es en realidad con el proyecto OpenFeint API. He agregado OpenFeint como proyecto de biblioteca:

proyecto de biblioteca]! [1]! [Ingrese la descripción de la imagen aquí.

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 :)

Ingrese la descripción de la imagen aquí

AZ_
fuente
7

Encontré algo más. Android usa el /libsdirectorio 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 /libsdirectorio 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 /libscarpeta, 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 /libspor defecto a partir de Android 4.0 (Ice Cream Sandwich, ICS).

Peter Mortensen
fuente
7

La actualización de Proguard a la última versión lo resolvió para mí.

  • Mi camino de defensa era C:\Program Files (x86)\Android\android-sdk\tools\proguard\
  • Descargué la nueva versión desde aquí
  • y reemplazó las carpetas bin y lib

¡GRACIAS A DIOS!

Pinhassi
fuente
7

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.

mindReader
fuente
Oh, gracias por mencionar "En general, parece que este problema surge cuando hay frascos innecesarios en la ruta de compilación". Después de eliminar los archivos jar innecesarios, el error desaparece. :)
surendran
6

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.

superjos
fuente
6

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 bindirectorio. ¡Eliminé el archivo JAR del bindirectorio y actualicé el proyecto en Eclipse y el error desapareció!

Andrew
fuente
5

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).

olivierg
fuente
5

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):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

Así que verifique si está agregando jar con clases duplicadas en su proyecto. En caso afirmativo, intente eliminar uno de ellos.

Funcionó para mi.

Seynorth
fuente
mira mi respuesta: stackoverflow.com/questions/2680827/…
Michel
5

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 ...

Andrew
fuente
1
Lo mismo para mí, cerrar Eclipse y comenzar de nuevo generalmente lo resuelve. Luego lo intento, pero no puedo hacer una segunda exportación, tengo que reiniciar nuevamente.
Ted
5

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.

THE_DOM
fuente
Mi solución fue más o menos la misma que la solución de @THE_DOM. Haga clic con el botón derecho en el proyecto, elija Herramientas de Android, luego elija Agregar biblioteca de compatibilidad. Esto descargará esos "complementos de terceros" si no los tiene (la solución de THE_DOM), pero también los agregará a su proyecto. Aún no se sabe si esta solución es solo un placebo o no. :)
Chris
5

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.

Jim Rhodes
fuente
5

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:

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!-- android-maven-plugin can't seem to automatically keep this from being
             included twice; it must therefore be included manually (either explicitly
             or transitively) in dependent projects -->
        <scope>provided</scope>
    </dependency>

Luego, en la aplicación final, pom.xmltuve que usar el truco correcto para permitir solo una ruta de inclusión, así como no incluir explícitamente la biblioteca principal:

    <!-- android-maven-plugin can't seem to automatically keep this from being
        included twice -->
    <!-- <dependency> -->
    <!-- <groupId>com.globalmentor</groupId> -->
    <!-- <artifactId>globalmentor-core</artifactId> -->
    <!-- <version>1.0-SNAPSHOT</version> -->
    <!-- </dependency> -->

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-google</artifactId>
        <version>1.0-SNAPSHOT</version>
        <exclusions>
            <!-- android-maven-plugin can't seem to automatically keep this from
                being included twice -->
            <exclusion>
                <groupId>com.globalmentor</groupId>
                <artifactId>globalmentor-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-android</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
Garret Wilson
fuente
Lo extraño para mí fue que <extractDuplicates>true</extractDuplicates>en el complemento android-maven se solucionó el problema, mvn installpero no de mvn deploydónde obtuve el error descrito ... realmente extraño
Karussell el
5

En mi caso

proyecto-> propiedades-> ruta de compilación java -> en orden y pestaña de exportación -> desmarque android-support-v4.jar

Mufrah
fuente
5

Solo limpia el proyecto

Si esto no funciona, pruebe las otras soluciones

Yassin
fuente
más 1 para la solución simple
Shylendra Madda
Y también necesito reiniciar Eclipse.
Dino Tw