Jar Mismatch 2 versions de android-support-v4.jar trouvées dans la liste des dépendances

130

J'essaye de créer 2 versions d'une application Android (gratuite / payante). J'ai une bibliothèque Android qui contient des fichiers communs aux deux. J'ai créé un nouveau projet Android et j'essaie d'utiliser la bibliothèque mais j'obtiens l'erreur ci-dessous:

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

Des idées pour résoudre ce problème? J'ai joué avec le chemin de construction sans succès.

Zaheer
la source
J'ai trouvé une solution très simple qui fonctionne dans de telles situations, consultez ma réponse ci
gprathour

Réponses:

177

Des idées pour résoudre ce problème?

Supprimer un.

J'ai joué avec le chemin de construction sans succès.

Étape n ° 1: annulez tout cela. Si vous dérangez le chemin de construction, sur la version R16 ou supérieure du plugin ADT pour Eclipse, vous le faites mal.

Étape # 2: Choisissez l'une de ces deux versions du JAR, ou choisissez celle de la zone "extras" de votre installation SDK.

Étape 3: Mettez le bon JAR App Library.

Étape # 4: Supprimez celui de App Free, car il récupérera ce JAR à partir de App Library.

Vous êtes invités à avoir à la place le même fichier JAR réel aux deux endroits ( App Freeet App Library), bien que cela prenne juste de l'espace supplémentaire sans raison.

CommonsWare
la source
1
@Necronet: ont tous utiliser le même JAR. Par exemple, copiez le dernier dans chacun de ces projets.
CommonsWare
@CommonsWare: comment savoir lequel est le dernier?
Mehul Joisar
2
@MehulJoisar: Cela dépend des auteurs du JAR. Dans le cas de android-support-v4.jar, le dernier est celui de votre installation SDK.
CommonsWare
5
@MehulJoisar: Je ne peux pas répondre à cela. Je prends généralement la dernière version android-support-v4.jardu SDK et la copie dans tous les projets de bibliothèque (en plus de supprimer celle du SDK).
CommonsWare
1
Je viens d'avoir ce problème, mais il a semblé sortir complètement du bleu, comme plusieurs autres problèmes (plus difficiles) Eclipse / Android. Cette réponse corrige l'effet mais apparemment pas la cause.
Joe Lapp
24
  1. Supprimer android-support-v4.jar de App Free
  2. Ajouter le même fichier de la bibliothèque d'applications à App Free
Lee Chun Hoe
la source
@Lee Chun Hoe pouvez-vous me dire comment accéder à ce chemin sous MAC OS. Je veux supprimer android-support-v4.jar.
Rakesh
@Rakesh Dans Eclipse Package Explorer, développez votre projet, sous le dossier libs, supprimez ce fichier android-support-v4.jar.
Lee Chun Hoe
12

Les solutions ci-dessus résolvent principalement le problème. après avoir utilisé ces solutions et le problème persiste. ensuite

Allez dans le dossier du projet -> libs-> et supprimez "android-support-v4.jar"

En espérant que cela résoudrait votre problème en résolvant mon problème.

Nauman Khalid
la source
11

Dans certains scénarios, vous avez plusieurs projets de bibliothèque ayant le android-support-v4.jardans leur libset les chemins de génération et votre projet a une dépendance envers les deux. Disons par exemple dans mon cas que j'ai les projets de bibliothèque suivants dans mon espace de travail,

  • libfacebook
  • libsherlockactionbar

Ces deux projets sont indépendants et je project.propertiesressemble à ce qui suit,

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

Lorsque je construis mon projet, j'obtiens un problème d'incompatibilité de jar ayant des références en double à deux copies du même fichier. Ce que j'ai fait pour résoudre ce problème est un peu de la supercherie. J'ai créé un nouveau projet de bibliothèque nommé libcommonscomme parent de tous les autres projets de bibliothèque de mon espace de travail, y compris libfacebooket libsherlockactionbar. Ensuite, j'ai supprimé la bibliothèque de support de tous les autres projets et n'ai conservé qu'une seule copie dans libcommonsle dossier libs de . Ensuite, j'ai ajouté libcommonscomme référence à tous mes autres projets de bibliothèque. Une fois nettoyé mon espace de travail, tout fonctionne comme un charme.

Subin Sebastian
la source
8

C'est une solution plus élégante que la suppression et l'ajout de fichiers!

Il vous suffit de:

  1. Cliquez avec le bouton droit sur l'application gratuite du projet
  2. Allez dans "Outils Android"> "Ajouter une bibliothèque d'assistance"
  3. Approuvez les autorisations et laissez-le mettre à jour la bibliothèque
  4. Répétez ce processus pour la bibliothèque d'applications du projet

La bibliothèque de support Android sera alors synchronisée (:

cokeby190
la source
Merci - cela a résolu mon problème. J'ai dû ajouter BaseGameUtils et j'ai obtenu cette erreur :)
neowhoru
@neowhoru, pas de problème! Heureux de partager! ~
cokeby190
1
heureux que cela ait aidé @MuhammedRefaat! (:
cokeby190
7

SOLUTION TRÈS SIMPLE

Une solution très simple a fonctionné pour mon cas, il suffit de copier le même fichier jar (android-support-v4.jar) dans tous les projets. Il n'y aura plus de conflit.

1 Copiez le fichier jar android-support-v4.jar du dossier libs de n'importe quel projet.

2 Supprimez le fichier jar android-support-v4.jar du dossier libs du deuxième projet qui existe déjà.

3 Collez le fichier jar nouvellement copié du premier projet dans le dossier libs du deuxième projet.

Le problème de non-concordance de jar sera résolu maintenant.

gprathour
la source
5

Copiez simplement la bibliothèque de l'un des projets vers l'autre. Peut-être que l'horodatage doit être le même sur les deux.

Rafael Sanches
la source
4

Résolution:

  1. Cliquez avec le bouton droit sur le projet `` gratuit ''> Outils Android> Ajouter une bibliothèque de support.
  2. Faites la même chose sur un projet «payant».
  3. Nettoyer tous les projets
vin de fraise
la source
2

Vérifiez s'il y a des projets non pertinents ouverts pour vous, car c'était le cas pour moi, il semblait que l'un des fichiers JAR était lié à un projet différent, avec lequel je ne travaillais pas, alors j'ai juste fermé ce projet, fait un nettoyage build du projet sur lequel je travaille et je n'ai plus eu le problème! J'espère que cela aide quelqu'un!

Arturas M
la source
1

Utilisez le même fichier jar lors de l'ajout de jars externes dans la bibliothèque et le projet

Pratik Kanade
la source
1

bien .. ça marche pour moi:

Aller à

Dossier de projet> libs

puis supprimez "android-support-v4.jar"

ensuite

projet> Nettoyer

Ça va marcher!

Erick Guerrero
la source
1

Je viens d'avoir ce problème, mais au lieu de supprimer le conflit android-support-v4.jar, je viens de le renommer android-support-v4_PROJECT.jar , ce qui a supprimé le conflit.

Si vous vous demandez comment renommer un fichier dans Eclipse, il vous suffit de mettre le fichier en surbrillance et d'appuyer sur F2.

eBehbahani
la source
0

Vous avez juste besoin d'avoir exactement la même somme de contrôle android-support-v4.jar sur chacun de vos projets. Pour cela, vous pouvez copier / coller l'un d'entre eux dans tous vos projets / bibliothèques en conflit.

Rien d'autre à faire, nettoyer et profiter :)

tryp
la source
0

Peut-être que vous ouvrez 2 projets en même temps (tous deux utilisant android-support-v4.jar). I close 1 project and every thing ok

Loup gris
la source