J'ai une erreur dans Eclipse. Que signifie ce message d'erreur?
The type iglu.ir.TermVector cannot be resolved. It is indirectly referenced from required .class files
Cela signifie: "Une classe que vous utilisez a besoin d'une autre classe qui n'est pas dans le classpath." Comme Harry Joy le suggère, vous devez vous assurer d'ajouter le fichier JAR requis au classpath.
C’est aussi probablement une question de confusion pour Eclipse qu’il s’agit d’une erreur réelle. J'ai ignoré l'erreur et lancé le service Web dont elle s'est plaint à endpointInterface, et tout s'est bien déroulé, à l'exception du traitement de la boîte de dialogue à chaque fois que je voulais l'exécuter. Juste une autre erreur opaque qui ne me dit rien.
Cela m'arrive parfois, j'ai toujours résolu cela avec la commande "mvn Eclipse: clean" pour nettoyer les anciennes propriétés, puis exécuter mvn Eclipse: eclipse -Dwtpversion = 2.0 (pour un projet Web bien sûr). Il y a d'anciennes propriétés sauvegardées, donc Eclipse est parfois confondu.
J'ai eu cette erreur à cause d'un référentiel maven local corromp.
Donc, afin de résoudre le problème, tout ce que j'avais à faire était d'aller dans mon référentiel et de supprimer le dossier contenant le fichier .jar concerné, puis de forcer un update maven
dans Eclipse.
Cela semble être un problème connu (bogue 67414) qui a été résolu dans la version 3.0 ... Quelqu'un a fait remarquer que cela se produisait également dans la version 3.4.
En attendant, la solution consiste à supprimer la bibliothèque système JRE du projet, puis à la rajouter.
Here are the steps:
Accédez aux propriétés du projet avec l'erreur de construction (clic droit> Propriétés)
Affichez l'onglet "Bibliothèques" dans la section "Chemin de construction".
Recherchez la "Bibliothèque système JRE" dans la liste (si cela manque, alors ce message d'erreur n'est pas un bogue Eclipse mais un projet mal configuré).
Supprimer la "bibliothèque système JRE"
Appuyez sur "Ajouter une bibliothèque ...", sélectionnez "Bibliothèque système JRE" et ajoutez le JRE approprié au projet (par exemple, "Espace de travail par défaut JRE").
Appuyez sur "Terminer" dans la sélection de la bibliothèque et sur "OK" dans les propriétés du projet, puis attendez la reconstruction du projet.
Espérons que l'erreur sera résolue ...
Cette erreur se produit lorsque les classes du fichier jar ne suivent pas la même structure que celle du dossier du fichier jar.
par exemple. si votre fichier de classe a le package com.test.exam et que le fichier classes.jar créé à partir de ce fichier de classe a la structure test.exam ... une erreur sera levée. Vous devez corriger la structure du paquet de votre classes.jar, puis l'inclure dans le chemin de compilation ecplipse ...
J'ai eu cette exception parce qu'Eclipse travaillait dans une version différente de jdk, elle a juste changé pour la version correcte, propre et construite, et a fonctionné!
J'ai eu un cas intéressant de ce problème avec Eclipse 4.4.2. Mon projet (P1) a référencé une classe externe (projet P2) avec deux méthodes portant le même nom mais des types d'arguments différents:
public static void setItem(Integer id) …
public static void setItem(Item item) …
Le type Item
figurait dans un troisième projet P3, que je ne voulais pas voir visible ici. P1 n'a appelé que la première méthode:
ExternalClass.setItem(Integer.valueOf(12345));
Ainsi, la deuxième méthode, qui utilisait la classe Item
, n'a pas été utilisée et il est vrai que P3 n'était pas dans le chemin de classe de compilation - pourquoi le devrait-elle si elle n'est pas utilisée.
Toujours Eclipse m'a dit
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
Compiler à partir de la ligne de commande n'a pas généré de tels problèmes. Changer le nom de la deuxième méthode (inutilisé ici!) A également résolu le problème dans Eclipse.
Si vous ne parvenez toujours pas à trouver un problème avec votre configuration, vous pouvez essayer Projet -> Nettoyer et nettoyer tous les projets de l’espace de travail.
EDIT: Désolé, n'a pas vu la suggestion de verbose_mode ... même chose
Ce qui a réglé ça pour moi, c'était right clicking on project > Maven > Update Project
Pour moi, cela se produit lorsque je mets à niveau mon jdk vers la version 1.8.0_60 avec mon ancien jeu de bocaux utilisé depuis longtemps. Si je retombe sur jdk1.7.0_25, tous ces problèmes ont disparu. Cela semble poser un problème de compatibilité entre le JRE et les bibliothèques.
Dans mon cas, j'ai créé un projet et créé ses minSdkVersion=9
et targetSdkVersion=17
. J'ai utilisé libs/Android-support-v4.jar
généré automatiquement. Je devais aussi utiliser ActionBarActivity
avec Android-support-v7-appcomapt.jar
. Je viens donc de copier le fichier Android-support-v7-appcompat.jar
du dossier Android-sdk/extras/andrid/support/v7/appcompat/libs
et de le coller dans le dossier de mon projet libs
. Et cela a causé l'erreur ci-dessus. Donc, fondamentalement, je devais mettre le fichier Android-support-v4.jar
de Android-sdk/extras/andrid/support/v7/appcompat/libs
également dans mon dossier de projet libs
. Selon mes connaissances, le fichier v7.jar
avait des dépendances sur le fichier v4.jar
. Donc, il avait besoin de son propre fichier v4.jar
, au lieu de mon projet, le fichier v4.jar
créé automatiquement.
Rapidement et simplement, je l'ai corrigé de cette façon (j'utilise la version ADT: v21.0.0-531062 sous Windows XP édition familiale)
Cela a fonctionné MAIS le problème revient tous les deux ou trois jours. Je fais comme ci-dessus et ça résout et me laisse développer.
J'ai eu l'erreur quand je viens de changer certains paramètres SVN et rien dans le code. Le simple nettoyage des projets a corrigé l'erreur.
Puisque vous nous donnez très peu de détails, il est fort probable que ce que vous avez fait, ce qui est une erreur incroyablement facile à commettre, est que, au lieu de vous diriger vers
Build Path > Configure Build Path > Projects
et en ajoutant votre dossier de projet supplémentaire à partir de là, vous êtes allé à la place
Build Path > Configure Build Path > Libraries
et ajouté votre dossier de projet à partir de là.
C'est certainement le cas si votre code est tout à fait correct, mais lors de la réorganisation automatique des importations via le raccourci ctrl+space
, au lieu de vos instructions d'importation faisant référence à com.your.additionalproject, toutes vos références renvoient à bin.com.your. .additionalproject.
Remarquez le bac. Cela signifie que vous référez indirectement à votre classe en traitant votre autre structure de dossiers de projet comme une bibliothèque, ce qui permet à votre IDE de faire tout ce qui est en son pouvoir pour trouver la classe exactement binaire à laquelle vous faites référence.
Pour corriger cela, supprimez le dossier des bibliothèques, ajoutez-le plutôt sous l'onglet Projets et réorganisez vos importations. Votre projet devrait bien fonctionner.
Pointez le JRE dans le chemin de génération vers un JDK. Cela a fonctionné pour moi.
Outre la cause déjà suggérée de l'absence d'un fichier de classe, cette erreur peut également indiquer un fichier de classe en double. Eclipse signale cette erreur lorsqu'un fichier de classe du chemin de génération utilise une autre classe comportant plusieurs définitions dans le chemin de construction.
Lorsque j'utilise une nouvelle version d'Eclipse et que j'essaie d'utiliser l'ancien espace de travail que j'avais utilisé avec l'ancienne version d'Eclipse, cette erreur s'est produite.
Voici comment je résous le problème:
Cliquez avec le bouton droit de la souris sur mon projet dans Package Explorer -> Propriétés -> Java Chemin de construction -> Bibliothèques -> Un message d'erreur (signature) apparaît dans la bibliothèque système JRE. Parce que le chemin ne peut pas être trouvé. -> Double-cliquez sur la bibliothèque système JRE -> sélectionnez l'option "JRE par défaut de l'espace de travail" -> Terminer -> OK. -> BUM IT IS TRAVAIL
FYI.
Dans mon cas, cela résultait de l’ajout d’une nouvelle dépendance à mon fichier pom.xml
.
La nouvelle dépendance dépendait d’une ancienne version d’une bibliothèque (2.5). Cette même bibliothèque était requise par une autre bibliothèque de mon pom.xml
, mais elle nécessitait la version 3.0.
Pour une raison quelconque, lorsque Maven rencontre ces conflits, il omet simplement la version la plus récente. Dans Eclipse lors de l'affichage de pom.xml
, vous pouvez sélectionner l'onglet "hiérarchie des dépendances" en bas pour voir comment les dépendances sont résolues. Vous trouverez ici si la bibliothèque (et donc la classe) en question a été omise pour cette raison.
Dans mon cas, c'était aussi simple que de verrouiller la nouvelle version. Vous pouvez le faire en cliquant avec le bouton droit de la souris sur l'entrée. Il existe une option pour la verrouiller dans le menu contextuel.