web-dev-qa-db-fra.com

l'archive de la bibliothèque requise n'a pas pu être lue ou n'est pas un fichier Zip valide

Avant d’aborder le problème, laissez-moi vous expliquer ce que j’ai fait et qui m’a atterri dans le problème.

  1. J'ai créé un compte sur github et créé un référentiel nommé Android.
  2. Ensuite, j'ai installé client github dans mes fenêtres 7.
  3. Ensuite, j'ai ouvert ce client, fourni mon authentification et cloné le référentiel dans un répertoire local C:\Users\Aniket\Documents\GitHub\Android (Ce dossier contient le dossier .git).
  4. Puis je suis allé sur mon ADT Eclipse et ai installé le plugin EGit comme décrit ici . Aussi je 
  5. Puis, dans Eclipse, je clique avec le bouton droit de la souris sur mon projet TicTacToe, accédez à Team->Share Project et indiquez le chemin de mon référentiel, i.e C:\Users\Aniket\Documents\GitHub\Android.
  6. Mon projet a été ajouté au référentiel local et dans mon client github, il affiche toutes les options permettant de valider un fichier dans le référentiel réel du site github.
  7. Mais mon projet montre soudainement une erreur avec un "!" signer dessus. 

    Description -> Archive pour la bibliothèque requise: 'C:/Utilisateurs/Aniket/AndroidWorkspace/TicTacToe /Libs/Android-support-v4.jar' dans le projet 'TicTacToe' ne peut pas être lu ou n'est pas un fichier Zip valide. fichier

    Ressource -> TicTacToe

    Emplacement du chemin -> chemin de construction 

    Type -> Problème de chemin de construction

Remarque: l’erreur était une seule ligne affichée dans la console d’erreur sur Eclipse. Je viens de le scinder pour plus de lisibilité.

Même après avoir détaché le référentiel, cette erreur est indiquée.

Quelqu'un at-il déjà rencontré ce scénario? Quelle est la solution ou solution de contournement? J'ai googlé et les premiers liens suggèrent qu'il s'agit d'un bogue Eclipse. S'il vous plaît suggérer ce qui peut être fait pour ramener mon projet à l'état exécutable?

29
Aniket Thakur

C'est un bug d'Eclipse. J'ai fait face au même problème plusieurs fois. fermer et rouvrir le projet fonctionne parfois. si cela ne fonctionne pas, essayez de redémarrer Eclipse.

49
rachit

J'ai vu le même problème. J'ai supprimé ce fichier jar, puis cliquez avec le bouton droit sur le projet, sélectionnez maven et faites "mettre à jour le projet ...". Le pot a été téléchargé à nouveau et le problème a disparu.

22
volatilevar

Il existe un autre cas d’erreur d’affichage Archive pour la bibliothèque requise

Faites un clic droit sur le projet et ouvrez -> propriétés du projet -> chemin de construction Java -> bibliothèques privées Android 

s'il y a deux fichiers JAR portant le même nom, supprimez-en un de libs. 

le fichier jar peut parfois être caché puis ouvrir votre dossier libs dans la fenêtre et vérifier s’il existe des fichiers cachés Organiser -> dossiers et options de recherche -> afficher -> cocher afficher les fichiers cachés et Supprime le fichier JAR masqué , La même procédure Cass supprime si des fichiers Java masqués existent dans src et dans les packages le cas échéant

10
Sandy09

On dirait que tout le monde a une histoire différente à raconter! Pour moi, je devais supprimer l'erreur de l'onglet Eclipse Markers, puis nettoyé le projet à nouveau. Avant cela, j'ai fermé et ré-ouvert le projet/Eclipse plusieurs fois, comme suggéré par @rachit, ce qui ne fonctionnait pas pour moi.

6
Mashrur

Cela pourrait également être dû à la corruption des fichiers jar. Mieux vaut vérifier cela en premier, car c’est la raison dans mon cas:

 jar tf myjar.jar

devrait lister le contenu à l'intérieur.

1
samsamara

Dans mon cas, j’avais téléchargé le projet sur Internet, après avoir décompressé certains fichiers, débloqué et réessayé, le problème était résolu.

1
lomec

Je dirai qu'il se peut que certaines réponses fonctionnent dans certains cas, mais pour moi, il était nécessaire de faire un effort supplémentaire. Je vais donc essayer de faire un résumé de ce qui peut être fait:

  1. Vérifiez que les pots sont intacts:

    jar tf myjar.jar

  2. Redémarrez Eclipse et mettez les projets à jour en cliquant dessus avec le bouton droit de la souris -> Maven -> Update project

  3. L'option qui a fonctionné pour moi était de naviguer dans le dossier de l'espace de travail, puis de supprimer les fichiers:

    .metadata/.plugins/org.Eclipse.jdt.core/invalidArchivesCache .metadata/.plugins/org.Eclipse.jdt.core/nonChainingJarsCache

Après cela, redémarrez Eclipse et reconstruisez le projet.

1
duderoot

Dans mon cas, le redémarrage d'Eclipse n'a pas résolu le problème. J'ai redémarré l'ordinateur et fait un Project -> Clean dans Eclipse

1
mboeckle

Dans mon cas, j'ai essayé tous les conseils suggérés, mais l'erreur est restée. J'ai résolu de changer de version avec une version plus récente et de l'écrire dans pom.xml Après cela, tout va bien maintenant.

1
enri

j'étais confronté au même problème dans Eclipse Mars. J'ai téléchargé les pots à partir de [ https://oss.jfrog.org/webapp/#/artifacts/browse/tree/General/repo/org/ethereum/ethereumj-core/1.0.0-SNAPSHOT_rev[1] et l'a remplacé dans le répertoire.

J'ai eu une erreur lors de l'ajout d'ethereum.jar en utilisant pom.xml dans C:\Utilisateurs {machineName} .m2\repository\org\ethereumj-core\1.0.0-SNAPSHOT\ethereum-core-1.0.0-SNAPSHOT.jar , j’ai ajouté le fichier téléchargé (ethereum-core-1.0.0-SNAPSHOT.jar) ici et le problème a été résolu.

1
Hem M

Une solution qui a fonctionné pour moi: Allez à *.classpath et supprimez la ligne: <classpathentry kind="lib" path="the_problematic_class.Java"/>

1
BVtp

Pour les applications Web Java, le fichier web.xml a été ajouté au fichier jar dans le projet. Dans l'explorateur de projet, essayez de rechercher web.xml sous la forme d'une icône jar et supprimez-le du projet. L'erreur disparaîtra !! 

0
YogiEHunt

Dans mon cas, l'installation de Java n'était pas correcte. Donc, je désinstalle Java et réinstalle une nouvelle version. Maintenant ça marche.

0
ChandrasekarG

Je n'ai trouvé aucun doublon nulle part et j'ai essayé de redémarrer Eclipse, un projet de reconstruction. J'avais une erreur pour une seule bibliothèque. J'ai donc juste essayé de renommer le fichier jar de ksoap2-Android-Assembly-2.5.8-jar-with-dependencies.jar à ksoap2-2.5.8.jar

Donc, si aucun des problèmes ne résout d'en haut, vous pouvez également essayer celui-ci

0
Jimit Patel

J'ai été bloqué sur ce problème pendant des jours malgré la recherche d'une solution sur le net. J'ai d'abord déplacé mon projet sur Netbeans et tout a bien fonctionné. Je suis ensuite retourné à Eclipse-> Propriétés-> Compilation Java-> Bâtiment et ai changé l’option "Chemin de construction incompartible" d’erreur en avertissement, puis maven update a fonctionné.

0
Andy Kofi

Pour nous, le problème semblait être la taille du fichier .jar. Je recommanderais de faire le test suivant pour voir si c'est le cas ou du moins l'exclure. Examinez d’abord les autres pots de votre projet Eclipse et comparez-les au pot problématique. Est-ce beaucoup plus gros que les autres? Si tel est le cas, essayez la solution suivante. Sinon, cette réponse ne vous aidera probablement pas. Avant de commencer, configurez Windows pour traiter les fichiers .jar en tant que fichiers .Zip avec la commande de ligne de commande suivante:

assoc .jar=CompressedFolder (voir https://superuser.com/questions/121540/can-you-configure-windows-to-open-jar-files-like-Zip-files-without-a-3rd-party-t )

Facultatif: un test simple

Avant d’essayer la solution de contournement, voici un test pour déterminer s’il s’agit bien de la taille du fichier jar.

  1. Créez un grand fichier .jar contenant des fichiers .class aléatoires qui ne figurent pas dans votre fichier jar problématique. Vous pouvez le faire en créant un dossier complet de fichiers, en le compressant et en renommant l’extension .Zip en .jar. Windows peut vous avertir de la modification de l'extension. Ignorer ceci. Assurez-vous que le dossier contient suffisamment de fichiers pour qu'il soit un peu plus grand que le fichier jar problématique.
  2. Essayez d'importer ce pot créé artificiellement. Si cela échoue avec la même erreur, alors la taille est probablement le problème.

La solution de contournement

Si c'est bien la taille qui pose problème, que vous avez peut-être identifiée en effectuant le test simple facultatif ci-dessus, vous pouvez essayer la solution de contournement suivante.

  1. Décompressez votre fichier .jar. Vous devriez pouvoir le faire facilement dans Windows
  2. Divisez le dossier obtenu à l’étape 1 en sous-dossiers plus petits. Il peut s'agir de deux dossiers ou plus, selon la taille de l'original. Vous voulez que les dossiers soient plus petits que certains de vos "bons" bocaux existants afin que leur taille ne soit pas un problème. Assurez-vous de conserver la structure de package intacte lorsque vous le faites.
  3. Compressez tous les dossiers que vous avez créés à l'étape 2 et renommez le fichier .Zip en .jar.
  4. Importez tous les fichiers .jar de l'étape 3 individuellement.

Les étapes peuvent être un peu obscures, alors voici un exemple. Imaginez que votre fichier jar s'appelle mylib.jar. Vous décompressez ceci dans un dossier appelé mylib. A l'intérieur, disons qu'il y a trois sous-dossiers appelés package1, package2 et package3. Créez 3 dossiers appelés mylib1, mylib2 et mylib3 et mettez-les dans package1, package2 et package3 respectivement. Zipez-les et renommez l'extension en .jar. Vous allez ensuite importer mylib1.jar, mylib2.jar et mylib3.jar.

0
Colm Bhandal