Eu recebi um erro no Eclipse. O que essa mensagem de erro significa:
O tipo iglu.ir.TermVector não pode ser resolvido. É indiretamente referenciado a partir de arquivos .class necessários
Eu recebi um erro no Eclipse. O que essa mensagem de erro significa:
O tipo iglu.ir.TermVector não pode ser resolvido. É indiretamente referenciado a partir de arquivos .class necessários
Respostas:
Significa: "Uma classe que você usa precisa de outra classe que não esteja no caminho de classe". Você deve certificar-se (como sugere Harry Joy) de adicionar o jar necessário ao caminho da classe.
É provável que o Eclipse fique confuso, pois é um erro real. Ignorei o erro e executei o serviço da Web cujo endpointInterface ele se queixava e funcionava bem, exceto por ter que lidar com o diálogo toda vez que eu queria executá-lo. Apenas mais um erro opaco que não me diz nada.
Às vezes acontece comigo: sempre consertei isso com o comando "mvn eclipse: clean" para limpar propriedades antigas e, em seguida, execute o mvn eclipse: eclipse -Dwtpversion = 2.0 (para o projeto da Web, é claro). Existem algumas propriedades antigas salvas, portanto o eclipse às vezes é confuso.
mvn eclipse:clean
e / ou mvn eclipse:eclipse
parecem ser o truque de mágica para fazê-lo funcionar.
Eu tive esse erro por causa de um repositório maven local corrompido .
Portanto, para corrigir o problema, tudo o que eu precisava fazer era ir ao meu repositório e excluir a pasta onde estava o .jar em questão e forçar um update maven
no Eclipse.
Parece que este foi um problema conhecido (Bug 67414) que foi resolvido no 3.0 ... alguém comentou que está ocorrendo para eles no 3.4 também.
Nesse meio tempo, a solução alternativa é remover a Biblioteca do Sistema JRE do projeto e adicioná-la novamente.
Here are the steps:
Vá para as propriedades do projeto com o erro de construção (clique com o botão direito do mouse em> Propriedades)
Veja a guia "Bibliotecas" na seção "Caminho da construção"
Localize a "Biblioteca do sistema JRE" na lista (se isso estiver faltando, essa mensagem de erro não será um bug do eclipse, mas um projeto mal configurado)
Remova a "Biblioteca do sistema JRE"
Clique em "Adicionar biblioteca ...", selecione "Biblioteca do sistema JRE" e adicione o JRE apropriado para o projeto (por exemplo, 'JRE padrão da área de trabalho')
Pressione "Concluir" na seleção da biblioteca e "OK" nas propriedades do projeto e aguarde a reconstrução do projeto.
Espero que o erro seja resolvido ...
Este erro ocorre quando as classes no arquivo jar não seguem a mesma estrutura da estrutura de pastas do jar.
por exemplo, se o arquivo de classe tiver o pacote com.test.exam e o classes.jar criado a partir desse arquivo de classe tiver a estrutura test.exam ..., o erro será gerado. Você precisa corrigir a estrutura do pacote do seu classes.jar e incluí-la no caminho de construção do ecplipse ...
Eu recebi essa exceção porque o eclipse estava trabalhando em uma versão diferente do jdk, apenas alterada para a correta, limpa e compilada e funcionou!
Eu tive um caso interessante desse problema com o Eclipse 4.4.2. Meu projeto (P1) referenciou uma classe externa (projeto P2) com dois métodos com o mesmo nome, mas diferentes tipos de argumento:
public static void setItem(Integer id) …
public static void setItem(Item item) …
O tipo Item
estava contido em um terceiro projeto P3, que eu não queria que fosse visível aqui. P1 chamou apenas o primeiro método:
ExternalClass.setItem(Integer.valueOf(12345));
Portanto, o segundo método, que usou a Item
classe, não foi usado, e é verdade que P3 não estava no caminho da classe de compilação - por que deveria, se não for usado.
Ainda Eclipse me disse
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
A compilação a partir da linha de comando não produziu nenhum desses problemas. Alterar o nome do segundo método (não utilizado aqui!) Também fez o problema desaparecer no Eclipse.
O que foi corrigido para mim foi right clicking on project > Maven > Update Project
Para mim, isso acontece quando eu atualizo meu jdk para 1.8.0_60, pois meu antigo conjunto de frascos foi usado por muito tempo. Se eu voltar ao jdk1.7.0_25, todos esses problemas se foram. Parece um problema sobre a compatibilidade entre o JRE e as bibliotecas.
Eu recebi o erro quando apenas alterei algumas configurações de svn e não nada no código. Apenas a limpeza dos projetos corrigiu o erro.
No meu caso, criei um projeto e fiz o seu minSdkVersion=9
e targetSdkVersion=17
. Eu usei gerado automaticamente libs/android-support-v4.jar
. Eu também tive que fazer uso do ActionBarActivity
uso android-support-v7-appcomapt.jar
. Então, eu apenas copiei o android-support-v7-appcompat.jar
arquivo da android-sdk/extras/andrid/support/v7/appcompat/libs
pasta e colei na minha libs
pasta do projeto . E isso causou o erro acima. Então, basicamente, eu precisava colocar o android-support-v4.jar
arquivo android-sdk/extras/andrid/support/v7/appcompat/libs
também na minha libs
pasta do projeto . De acordo com meu conhecimento, o v7.jar
arquivo tinha dependências no v4.jar
arquivo. Então, ele precisava do próprio v4.jar
arquivo, em vez do meu projeto, criou automaticamente o v4.jar
arquivo.
Rapidamente e com simplicidade, eu o corrigi dessa maneira (eu uso a versão ADT: v21.0.0-531062 no Windows XP home edition)
Funcionou, mas o problema retorna a cada poucos dias. Eu faço o mesmo que acima e ele resolve e me permite desenvolver.
Além da causa já sugerida de falta de um arquivo de classe, esse erro também pode indicar um arquivo de classe duplicado, o eclipse relata esse erro quando um arquivo de classe no caminho da construção usa outra classe que possui várias definições no caminho da construção.
Como você nos fornece muito poucos detalhes, provavelmente o que você fez, que é um erro incrivelmente fácil de cometer, é que, em vez de ir para
Build Path > Configure Build Path > Projects
e adicionando sua pasta de projeto adicional a partir daí, você foi para
Build Path > Configure Build Path > Libraries
e adicionou sua pasta do projeto a partir daí.
Esse é definitivamente o caso, se seu código estiver correto, mas após a reorganização automática das importações via ctrl+space
atalho, em vez de suas instruções de importação se referirem a com.your.additionalproject, todas as suas referências apontam para bin.com.your.additionalproject.
Observe a bandeja. Isso significa que você está indiretamente se referindo à sua classe, tratando a outra estrutura de pastas do projeto como uma biblioteca, fazendo com que o IDE faça todo o trabalho de encontrar a classe binária exata à qual você está se referindo.
Para corrigir isso, remova a pasta das Bibliotecas e adicione-a na guia Projetos e reorganize suas importações. Seu projeto deve funcionar bem.
Quando eu uso uma nova versão do eclipse e tento usar o espaço de trabalho anterior que eu usei na versão antiga do eclipse, esse erro ocorreu.
Aqui está como eu resolvo o problema:
Clique com o botão direito do mouse no meu projeto no Package Explorer -> Propriedades -> Caminho de Construção Java -> Bibliotecas -> Eu vejo um erro (sinal cruzado) na Biblioteca do Sistema JRE. Porque o caminho não pode ser encontrado. -> Clique duas vezes na Biblioteca do sistema JRE -> Selecione a opção "JRE padrão da área de trabalho" -> Concluir -> OK. -> BUM, ESTÁ FUNCIONANDO
PARA SUA INFORMAÇÃO.
No meu caso, foi o resultado de adicionar uma nova dependência ao meu pom.xml
arquivo.
A nova dependência dependia de uma versão antiga de uma biblioteca (2.5). Essa mesma biblioteca foi exigida por outra biblioteca no meupom.xml
, mas exigiu a versão 3.0.
Por alguma razão, quando o Maven encontra esses conflitos, simplesmente omite a versão mais recente. No Eclipse, ao visualizar, pom.xml
você pode selecionar a guia "hierarquia de dependências" na parte inferior para ver como as dependências são resolvidas. Aqui você encontrará se a biblioteca (e, portanto, a classe) em questão foi omitida por esse motivo.
No meu caso, era tão simples quanto bloquear a versão mais recente. Você pode fazer isso clicando com o botão direito do mouse na entrada - existe uma opção para bloqueá-la no menu de contexto.
Aponte o JRE no caminho Build para um JDK. Isso funcionou para mim.