web-dev-qa-db-fra.com

Jar mismatch! Fixez vos dépendances

Étapes à suivre pour reproduire:

  1. créer un projet Android "MyApp"
  2. importer ActionBarSherlock (ABS), Directional ViewPager (DVP) ou toute autre bibliothèque open source utilisant la bibliothèque de support Android.
  3. Ajouter les bibliothèques au projet "MyApp" 

Journal de la console:

[2013-04-17 14:27:12 - MyApp] Found 2 versions of Android-support-v4.jar in the dependency list,
[2013-04-17 14:27:12 - MyApp] but not all the versions are identical (check is based on SHA-1 only at this time).
[2013-04-17 14:27:12 - MyApp] All versions of the libraries must be the same at this time.
[2013-04-17 14:27:12 - MyApp] Versions found are:
[2013-04-17 14:27:12 - MyApp] Path: C:\Users\santhosh\My_Workspace\DVP_library\libs\Android-support-v4.jar
[2013-04-17 14:27:12 - MyApp]   Length: 140011
[2013-04-17 14:27:12 - MyApp]   SHA-1: fc834ac8147bc4ed0b555f90f500a57d4232c448
[2013-04-17 14:27:12 - MyApp] Path: C:\Users\santhosh\My_Workspace\abs_library\libs\Android-support-v4.jar
[2013-04-17 14:27:12 - MyApp]   Length: 271754
[2013-04-17 14:27:12 - MyApp]   SHA-1: 53307dc2bd2b69fd5533458ee11885f55807de4b
[2013-04-17 14:27:12 - MyApp] Jar mismatch! Fix your dependencies

Je sais que je suis supposé supprimer Android-support-v4.jar du dossier libs et ne conserver qu'une copie pour tous. Mais cela ne résout pas mon problème.  

Lorsque j'essaie de supprimer Android-support-v4.jar de MyApp , cela me donne l'erreur suivante.

 Problems encountered while deleting resources.
 Could not delete 'C:\Users\santhosh\My_Workspace\MyApp\libs\Android-support-v4.jar'.

Lorsque j'essaie de supprimer Android-support-v4.jar deABS, le message d'erreur suivant s'affiche:

 ????? cannot be resolved to a type error.

J'ai essayé de nettoyer le projet, Fix Project Properties. Redémarrez Eclipse, Construisez, importez et ajoutez à nouveau. J'ai essayé de copier le fichier jar de support dans le dossier libs d'une bibliothèque à l'autre. supprimez le fichier de support dans les deux bibliothèques et ajoutez-le au projet MyApp. Rien n'a fonctionné pour moi. 

Si j'essaie d'ajouter une seule bibliothèque, cela fonctionne bien. Je suis confronté au problème lorsque j'essaie d'ajouter 2 bibliothèques ou plus à un seul projet.

erreur lors de l'ajout de deux bibliothèques dans MyApp:

The project was not built since its build path is incomplete. 
Cannot find the class file for Android.support.v4.app.FragmentActivity. 
Fix the build path then try building this project MyApp Unknown Java Problem
The type Android.support.v4.app.FragmentActivity cannot be resolved. It is indirectly referenced from required .class files MyActivity.Java/MyApp/src/com/santhosh/myapp    line 10 Java Problem
Jar mismatch! Fix your dependencies MyApp Unknown Android Dependency Problem
71
SKK

Utiliser un projet de bibliothèque uniquement pour la bibliothèque de support

À partir de ADT 22, à l'aide d'Eclipse Juno 

Je ne pense pas que ce qui précède soit vraiment la meilleure réponse. Je ne pense pas non plus qu'il soit recommandé d'utiliser la fonction external jar dans Eclipse (autant que je sache).

Ce qui a plutôt bien fonctionné pour moi, c’est de créer un projet de bibliothèque vide distinct. 

Utilisez ensuite Android tools> Add Support Library pour obtenir la dernière version dont vous avez besoin ou que vous souhaitez. 

Ensuite, supprimez le support jar de tous les autres projets.

Enfin, pour chaque projet qui le nécessite, ajoutez une référence à votre nouveau projet Library.

(project properties)> Android> (Library box)> Add...

Tous vos projets auront alors une source unique à utiliser et à mettre à jour la bibliothèque de support. Cela facilite également le travail des javadocs.

Pour plus d'informations sur la configuration des javadocs, voir: 

Comment attacher des sources javadoc ou des fichiers javadoc aux fichiers jars du dossier libs?

49
pjco

N'incluez pas Android-support-v4 dans la bibliothèque, vous pouvez plutôt l'ajouter à votre projet en tant que jar externe en utilisant le chemin d'accès à la construction> ajouter un jar externe  

Parfois, vous devez nettoyer votre projet.

54

Supprimez le fichier Android-support-v4.jar du dossier libs de votre projet.

16
Pratik Butani

Actionbarsherlock contient la bibliothèque de support. Cela provoque probablement un conflit si la bibliothèque de support est également dans votre projet principal.

Supprimez Android-support-v4.jar du répertoire libs de votre projet.

Supprimez également Android-support-v4.jar de votre deuxième bibliothèque, puis réessayez.

Jar Mismatch Trouvé 2 versions de Android-support-v4.jar dans la liste des dépendances

7
Raghunandan

Je suis d'accord avec pjco. La meilleure méthode est la méthode officielle expliquée dans Configuration de la bibliothèque de support dans le didacticiel de developer.Android.com .

Ensuite, dans Eclipse "package Explorer", développez votre projet principal et supprimez Android-support-v4.jar du "libs" dossier (comme Pratik Butanisuggéré ). 

Cela a fonctionné pour moi.

5
nettie
  1. Une incompatibilité de fichier JAR survient lorsque vous utilisez des projets de bibliothèque dans votre application et que les deux projets utilisent le même fichier JAR avec une version différente. Vérifiez simplement tous les projets de bibliothèque joints à votre application. si un décalage existe, supprimez-le.

  2. si le processus ci-dessus ne fonctionne pas, supprimez simplement la dépendance du projet du chemin de génération, ajoutez à nouveau des projets de bibliothèque et générez l'application. 

4
Gopal Sharma

Je pense que vous créez un nouvel espace de travail et importez tous les projets correctement avec sa bibliothèque et ajoutez également un fichier jar externe Android-support-v4.jar dans un ensemble adb dans des fichiers supplémentaires sdk. Je pense que cela fonctionne pour vous. J'espère le meilleur 

Et aussi utiliser la librairie de support Android, il peut être vous aider et mettre à jour votre bundle adt

1
user4004473

Je crois que vous avez besoin de votre paquet de support dans la bibliothèque et l'application. Cependant, pour résoudre ce problème, assurez-vous que vous avez le même fichier aux deux emplacements (même somme de contrôle).

Copiez simplement le fichier support-package à partir d’un emplacement et copiez-le à un autre, puis nettoyez + actualisez votre bibliothèque/projet et vous devriez être prêt.

1
waqaslam

Dans mon cas, il y avait un autre répertoire dans mon espace de travail, contenant le même fichier JAR que celui de mon projet. Je n'avais pas créé ce répertoire ou quoi que ce soit dedans. Il a été créé par Eclipse, je crois. Je viens d'effacer ce répertoire et il fonctionne correctement.

0
Barbaros Erdogdu

Faites un clic droit sur votre projet -> Outil Android -> Ajouter une bibliothèque de support

0
user5999064