Jar Mismatch Se encontraron 2 versiones de android-support-v4.jar en la lista de dependencias

130

Estoy tratando de crear 2 versiones de una aplicación de Android (gratis / de pago). Tengo una biblioteca de Android que contiene archivos comunes a ambos. Creé un nuevo proyecto de Android y estoy tratando de usar la Biblioteca, pero aparece el siguiente error:

Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
    Length: 349252
    SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
    Length: 337562
    SHA-1: 27c24d26e4c5d57976e6926367985548678e913c

¿Alguna idea de como resolver esto? He estado jugando con la ruta de compilación sin éxito.

Zaheer
fuente
He encontrado una solución muy simple que funciona en tales situaciones,
mira

Respuestas:

177

¿Alguna idea de como resolver esto?

Eliminar uno.

He estado jugando con la ruta de compilación sin éxito.

Paso # 1: Deshaga todo eso. Si está jugando con la ruta de compilación, en R16 o una versión superior del complemento ADT para Eclipse, lo está haciendo mal.

Paso # 2: Elija una de esas dos versiones del JAR, o elija la del área "extras" de su instalación de SDK.

Paso 3: coloque el JAR correcto App Library.

Paso # 4: Elimina el de App Free, ya que recogerá ese JAR de App Library.

En cambio, puede tener el mismo archivo JAR real en ambos puntos ( App Freey App Library), aunque eso solo ocupa espacio adicional sin ningún motivo.

CommonsWare
fuente
1
@Necronet: haga que todos usen el mismo JAR. Por ejemplo, copie el último en cada uno de esos proyectos.
CommonsWare
@CommonsWare: ¿cómo saber cuál es la última?
Mehul Joisar
2
@MehulJoisar: Eso depende de los autores del JAR. En el caso de android-support-v4.jar, el último es el que está en la instalación de su SDK.
CommonsWare
55
@MehulJoisar: No puedo responder eso. Por lo general, tomo lo último android-support-v4.jardel SDK y lo copio en todos los proyectos de la biblioteca (además, elimino el del SDK).
CommonsWare
1
Acabo de tener este problema, pero parecía salir completamente de la nada, como lo han tenido otros problemas (más difíciles) de Eclipse / Android. Esta respuesta corrige el efecto pero aparentemente no la causa.
Joe Lapp el
24
  1. Eliminar android-support-v4.jar de App Free
  2. Agregue el mismo archivo de la biblioteca de aplicaciones a la aplicación gratuita
Lee Chun Hoe
fuente
@Lee Chun Hoe, ¿puedes decirme cómo ir a este camino en MAC OS? Quiero eliminar android-support-v4.jar.
Rakesh
@Rakesh En Eclipse Package Explorer, expanda su proyecto, en la carpeta libs, elimine ese archivo android-support-v4.jar.
Lee Chun Hoe
12

Las soluciones anteriores en su mayoría resuelven el problema. después de usar estas soluciones y el problema persiste. Luego

Vaya a la carpeta del proyecto -> libs-> y elimine "android-support-v4.jar"

Con la esperanza de que resolvería su problema, ya que resolvió mi problema.

Nauman Khalid
fuente
11

Hay algunas situaciones en las que tienen múltiples proyectos de bibliotecas que tienen el la android-support-v4.jaren sus libsy construir caminos y su proyecto tiene una dependencia hacia los dos. Digamos, por ejemplo, en mi caso que tengo los siguientes proyectos de biblioteca en mi espacio de trabajo,

  • libfacebook
  • libsherlockactionbar

Ambos proyectos son independientes y mi project.propertiesaspecto es el siguiente:

# Project target.
target=android-17
android.library.reference.1=../libfacebook
android.library.reference.2=../libsherlockactionbar

Cuando construyo mi proyecto, aparece un problema de desajuste de jar que tiene referencias duplicadas a dos copias del mismo archivo. Lo que hice para resolver este problema es un poco engañoso. Creé un nuevo proyecto de biblioteca nombrado libcommonscomo padre para todos los demás proyectos de biblioteca en mi espacio de trabajo, incluidos libfacebooky libsherlockactionbar. Luego eliminé la biblioteca de soporte de todos los demás proyectos y guardé solo una copia dentro libcommonsde la carpeta libs . Luego he agregado libcommonscomo referencia a todos mis otros proyectos de biblioteca. Una vez limpiado mi espacio de trabajo, todo funciona a las mil maravillas.

Subin Sebastian
fuente
8

¡Esta es una solución más elegante que eliminar y agregar archivos!

Solo necesitas:

  1. Haga clic derecho en la aplicación del proyecto Gratis
  2. Vaya a "Herramientas de Android"> "Agregar biblioteca de soporte"
  3. Aprobar los permisos y dejar que actualice la biblioteca
  4. Repita este proceso para la biblioteca de aplicaciones del proyecto

La biblioteca de soporte de Android estará sincronizada (:

cokeby190
fuente
Gracias, esto resolvió mi problema. Tuve que agregar BaseGameUtils y obtuve este error :)
neowhoru
@neowhoru, no hay problema! Me alegro de compartir! ~
cokeby190
1
Me alegro de que haya ayudado @MuhammedRefaat! (:
cokeby190
7

SOLUCION MUY SIMPLE

Una solución muy simple funcionó para mi caso, simplemente copie el mismo archivo jar (android-support-v4.jar) en todos los proyectos. No habrá más conflicto.

1 Copie el archivo jar android-support-v4.jar de la carpeta libs de cualquier proyecto.

2 Elimine el archivo jar android-support-v4.jar de la carpeta libs del segundo proyecto que ya existe.

3 Pegue el archivo jar recién copiado del primer proyecto en la carpeta libs del segundo proyecto.

El problema de la falta de coincidencia de jar se resolverá ahora.

gprathour
fuente
5

Simplemente copie la biblioteca de uno de los proyectos al otro. Tal vez la marca de tiempo debe ser la misma en ambos.

Rafael Sanches
fuente
4

Resolución:

  1. Haga clic derecho en el proyecto 'gratis'> Herramientas de Android> Agregar biblioteca de soporte.
  2. Haga lo mismo en el proyecto 'pagado'.
  3. Limpiar todos los proyectos.
vino de fresa
fuente
2

Comprueba si hay proyectos irrelevantes abiertos para ti, porque ese fue el caso para mí, parecía que uno de los archivos JAR estaba relacionado con un proyecto diferente, con el que no estaba trabajando, así que simplemente cerré ese proyecto, hice una limpieza Compilación del proyecto en el que estoy trabajando y ya no tengo el problema. ¡Espero que esto ayude a alguien!

Arturas M
fuente
1

Use el mismo frasco mientras agrega frascos externos tanto en la biblioteca como en el proyecto

Pratik Kanade
fuente
1

bueno ... funciona para mi:

Ir

Carpeta de proyecto> libs

luego, elimine "android-support-v4.jar"

Luego

proyecto> Limpio

¡Funcionará!

Erick Guerrero
fuente
1

Acabo de tener este problema, pero en lugar de eliminar el conflictivo android-support-v4.jar , simplemente lo cambié a android-support-v4_PROJECT.jar , lo que eliminó el conflicto.

Si se pregunta cómo cambiar el nombre de un archivo en Eclipse, solo necesita resaltar el archivo y presionar F2.

eBehbahani
fuente
0

Solo necesita tener exactamente la misma suma de comprobación android-support-v4.jar en cada uno de sus proyectos. Para esto, puede copiar / pegar uno de ellos en todos sus proyectos / biblioteca en conflicto.

Nada más que hacer, limpiar y disfrutar :)

tryp
fuente
0

Puede abrir 2 proyectos al mismo tiempo (ambos usando android-support-v4.jar). I close 1 project and every thing ok

Lobo gris
fuente