Adicione o jar que contém iglu.ir.TermVector no caminho de origem do seu projeto.
Harry Joy
2
Se você tem certeza de que a classe é fornecida, tente uma limpeza e atualização em todos os seus projetos
Mirco
Isto aconteceu-me por causa das dependências transitivas em meus jarros
Janac Meena
exatamente! esse jar precisa estar presente nas dependências do pom.xml.
gaurav 29/01
Respostas:
193
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.
Resposta universal e simples que me ajuda muito em casos diferentes :) THX #
Mariusz Chw
Ao tentar remover classes em particular, verifique as classes pai para obter referência ao tipo ausente. Se nem sempre é o que essa mensagem significa, é o que significa provavelmente na maioria das vezes.
butallmj
Sim, eu achei que era devido a alguns frascos ausentes nos frascos referenciados :) Obrigado.
Ali Imran
21
@Arne, Por que diz indiretamente referenciado então? Não deveria ter dito que ele é não referenciada em tudo?
Pacerier
2
@ Pacerier que não seria verdade. Não é o seu código que faz referência direta a esse tipo, mas algo que seu código usa; portanto, a dependência do seu código para esse tipo é "apenas" transitiva, mas existe. "Indiretamente" indica onde procurar.
hiergiltdiestfu
22
É 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.
Também não está em uma jarra. Está em um dos projetos incluídos em todos os projetos incluídos, onde é de alguma relevância.
Jerry Miller
3
Eu experimentei esse problema no eclipse, mas a construção via maven funcionou bem. A correção foi excluir e reimportar o projeto no espaço de trabalho do eclipse que continha as classes necessárias.
PiersyP:
Isso pode acontecer algumas vezes, mas eu encontrei erros que dão a mesma resposta, e o projeto não pode ser construído.
Christopher Connery
13
À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.
Limpei o projeto (de Projeto-> Limpo ...) e funcionou.
Anu Shibin Joseph Raj
mvn eclipse:cleane / ou mvn eclipse:eclipseparecem ser o truque de mágica para fazê-lo funcionar.
Antoine Martin
13
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 mavenno Eclipse.
Isso funcionou para mim, enquanto o acima de tudo não. O problema ocorreu quando um dos meus colegas de equipe atualizou a versão de um repositório do pom.
IAL
8
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.
Sim. Eu tive o mesmo problema com o spring-web-3.0.1.RELEASE.Ele foi registrado como uma dependência no pom.xml e já estava funcionando como uma dependência em algumas referências quando fiz um http.csrf (). desativar (). cors (). desativar (). httpBasic (). e (). authorizeRequests () .antMatchers (PUBLIC_MATCHERS) .permitAll (). anyRequest (). authenticated (); Em seguida, baixei o arquivo jar e importe-o da maneira manual tradicional.
Tsakiroglou Fotis
5
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 Itemestava 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 Itemclasse, 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.
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.
No meu caso, criei um projeto e fiz o seu minSdkVersion=9e targetSdkVersion=17. Eu usei gerado automaticamente libs/android-support-v4.jar. Eu também tive que fazer uso do ActionBarActivityuso android-support-v7-appcomapt.jar. Então, eu apenas copiei o android-support-v7-appcompat.jararquivo da android-sdk/extras/andrid/support/v7/appcompat/libspasta e colei na minha libspasta do projeto . E isso causou o erro acima. Então, basicamente, eu precisava colocar o android-support-v4.jararquivo android-sdk/extras/andrid/support/v7/appcompat/libstambém na minha libspasta do projeto . De acordo com meu conhecimento, o v7.jararquivo tinha dependências no v4.jararquivo. Então, ele precisava do próprio v4.jararquivo, em vez do meu projeto, criou automaticamente o v4.jararquivo.
Rapidamente e com simplicidade, eu o corrigi dessa maneira (eu uso a versão ADT: v21.0.0-531062 no Windows XP home edition)
Arquivo de manifesto aberto.
Alterou o projeto existente minSdkVersion para o mesmo valor que maxSdkVersion (aviso: pode ser bom criar um novo projeto e ver o que é maxSdkVersion)
Salve o arquivo de manifesto.
Clique com o botão direito do mouse no projeto e selecione Build Project.
No menu superior: Projeto - Limpar .. - marque Apenas o projeto relevante, abaixo de eu marquei Iniciar uma compilação imediatamente e Crie apenas os projetos selecionados e OK.
abra o arquivo java - SEM erros vermelhos!
Volte para a etapa 1 acima e altere Voltar minSdkVersion para o valor original (para suprimir o máximo de versão do Android possível).
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
No meu caso, foi o resultado de adicionar uma nova dependência ao meu pom.xmlarquivo.
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.xmlvocê 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.
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.
fonte
É 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.
fonte
À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.
fonte
mvn eclipse:clean
e / ou mvneclipse: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.fonte
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.
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 ...
fonte
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 ...
fonte
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!
fonte
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:
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: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
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.
fonte
O que foi corrigido para mim foi
right clicking on project > Maven > Update Project
fonte
Se você ainda não encontrar nada de errado com sua configuração, tente o Projeto -> Limpar e limpe todos os projetos na área de trabalho.
EDIT: Desculpe, não vi a sugestão de verbose_mode ... mesma coisa
fonte
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.
fonte
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.
fonte
No meu caso, criei um projeto e fiz o seu
minSdkVersion=9
etargetSdkVersion=17
. Eu usei gerado automaticamentelibs/android-support-v4.jar
. Eu também tive que fazer uso doActionBarActivity
usoandroid-support-v7-appcomapt.jar
. Então, eu apenas copiei oandroid-support-v7-appcompat.jar
arquivo daandroid-sdk/extras/andrid/support/v7/appcompat/libs
pasta e colei na minhalibs
pasta do projeto . E isso causou o erro acima. Então, basicamente, eu precisava colocar oandroid-support-v4.jar
arquivoandroid-sdk/extras/andrid/support/v7/appcompat/libs
também na minhalibs
pasta do projeto . De acordo com meu conhecimento, ov7.jar
arquivo tinha dependências nov4.jar
arquivo. Então, ele precisava do própriov4.jar
arquivo, em vez do meu projeto, criou automaticamente ov4.jar
arquivo.fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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 meu
pom.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.
fonte
Aponte o JRE no caminho Build para um JDK. Isso funcionou para mim.
fonte