Fiz o download de algum software de código aberto escrito em Java e tentei compilá-lo usando o Eclipse. Eu recebi o erro: " A hierarquia do tipo 'Nome da classe' é inconsistente " em alguns arquivos. O que causa esses erros e como corrigi-los?
139
Maven
>Download Source
na dependência em questão.Às vezes, acontece quando você adiciona um jar de que você precisa, mas não inclui os jarros necessários para a TI. No meu caso, adicionar todos os frascos no tomcat / lib me ajudou a resolver esse problema. Estou trabalhando em um aplicativo da web.
fonte
Verifique seus erros (guia "marcadores"). Eu também tive o seguinte erro:
e quando isso foi corrigido, o "erro inconsistente" desapareceu.
Na verdade, eu adicionei jars ao caminho da compilação, mas por algum motivo eles não puderam ser lidos com erro
Então, em vez disso, eu os adicionei como "Jars externos". Isso ajudou e todos os problemas de compilação não existiam mais!
fonte
Eu tive esse problema depois de atualizar o JDK para uma nova versão. Eu tive que atualizar as referências às bibliotecas em Project Properties / Java Build Path.
fonte
Mais um caso que tive. Forneça o caminho correto do projeto e importe-o para eclipse.
Em seguida, vá para Projeto -> Limpar -> Limpar todos os projetos.
fonte
Você deve limpar o projeto ou reiniciar o Eclipse.
fonte
Você verá esse erro no caso de uma classe no seu arquivo de biblioteca de alguma classe ter referência a classes inexistentes que poderiam estar em outro arquivo jar. Aqui, recebi esse erro quando não adicionei
org.springframework.beans-3.1.2.RELEASE.jar
e estendi uma classe deorg.springframework.jdbc.core.support.JdbcDaoSupport
, que estava noorg.springframework.jdbc-3.1.2.RELEASE.jar
meu caminho de classe.fonte
O problema pode ser que você incluiu frascos incorretos. Eu tive o mesmo problema e o motivo foi que incluíra a biblioteca JRE padrão incorreta no caminho de construção do projeto. Eu havia instalado o Java com outra versão e estava incluindo arquivos JRE do Java com uma versão diferente. (Eu instalei o JRE 1.6 no meu sistema e estava tendo a biblioteca JRE 1.7 incluída no caminho de construção devido ao Java instalado anteriormente) Pode ser que você possa verificar se a biblioteca JRE que você incluiu no caminho de construção é da versão correta, por exemplo. da versão Java que você instalou em seu sistema.
fonte
Eu tive esse problema no Eclipse Juno, a causa principal foi que, embora alguns jarros de mola estivessem sendo incluídos por dependências temporárias temporárias, eles foram incluídos em versões incorretas.
Portanto, você deve verificar se, usando uma estrutura modularizada como primavera, todos os módulos (ou pelo menos os mais importantes: núcleo, beans, contexto, aop, tx etc.) estão na mesma versão.
Para resolver o problema, usei exclusões de dependência não autorizada para evitar a versão incorreta das dependências transitórias.
fonte
Erro: a hierarquia do tipo "nome da classe" é um erro inconsistente.
solução: a classe OtherDepJar {} -> está dentro de "other.dep.jar" .
a classe DepJar estende OtherDepJar {} -> está dentro de "dep.jar" .
classe ProblematicClass estende DepJar {} -> está dentro do projeto atual.
Se dep.jar estiver no caminho de classe do projeto, mas other.dep.jar não estiver no caminho de classe do projeto, o Eclipse mostrará "A hierarquia do tipo ... é um erro inconsistente"
fonte
Para mim, o problema ocorreu devido a importações incorretas. De fato, é necessário atualizar as importações depois de adicionar a biblioteca de suporte v7.
Pode ser corrigido da seguinte maneira, para cada classe do seu projeto :
import android.[*]
, em cada classeandroid.support.[*]
(e nãoandroid.[*]
).fonte
Definitivamente, porque faltava dependências que não estavam no meu maven pom.xml.
Por exemplo, eu queria criar testes de integração para minha implementação do site de demonstração de comércio eletrônico de folha larga.
Eu incluí um pote de folha larga com testes de integração do comércio de folha larga para reutilizar seus arquivos de configuração e classes de teste base. Esse projeto tinha outras dependências de teste que eu não incluí e recebi o erro "hierarquia inconsistente".
Após copiar as "dependências de teste" do broadleaf / pom.xml e as variáveis de propriedades associadas que forneceram as versões para cada dependência no broadleaf / pom.xml, o erro foi eliminado.
As propriedades foram:
As dependências foram:
fonte
Se a classe estendida tiver o problema, a mensagem de erro acima será exibida.
Exemplo
corrija os problemas em
Example1
fonte
Eu tinha o mesmo marcador exato do problema e o resolvi removendo a anotação @Override de um método que era de fato a primeira implementação (a "super" sendo um método abstrato) e não uma substituição.
fonte
No meu caso, as referências de importação em muitas das classes continham uma palavra extra. Eu o resolvi editando todos os arquivos para ter as importações corretas. Comecei a fazer as edições manualmente. Mas quando vi o padrão, eu o automatizei com um achado ... substituir no eclipse. Isso resolveu o erro.
fonte
Para mim, estava mudando o nível da API do Android para um com as APIs do Google
fonte
Eu também estava com esse problema ... Descobri que a hierarquia da classe que estava lançando essa exceção não pode ser rastreada até a sua classe raiz pelo eclipse ... Explico:
No meu caso, eu tenho 3 projetos java: A, B e C ... onde A e B são projetos automatizados e C um projeto regular de eclipse java ...
No projeto A, tenho a interface "interfaceA" ... No projeto B, tenho a interface "interfaceB" que estende "interfaceA" No projeto C, tenho a classe concreta "classC" que implementa "interfaceB"
O "projeto C" estava incluindo o "projeto B" em seu caminho de construção, mas não o "projeto A" (portanto, foi a causa do erro) .... Depois de incluir o "projeto A" dentro do caminho de construção de "C" , tudo voltou ao normal ...
fonte
Eu tive uma classe que estende LabelProvider em um projeto com OSGi, aí ocorreu o erro. A solução foi: Incluindo org.eclipse.jface nos plugins necessários no manifest.mf em vez de importar pacotes únicos como org.eclipse.jface.viewers
fonte
se você estiver importando o projeto eclipse, apenas 1. Vá para a configuração do caminho de construção java nas propriedades do projeto. 2. Caso a biblioteca JRE System tenha um sinal de erro anexado, clique duas vezes nela para abrir a janela Edit library 3. Altere o ambiente de execução para a versão java correta do sistema ou escolha editar as outras configurações verificando os botões de opção atribuídos para eles. 4. Clique em Concluir
fonte
Ao importar um projeto GWT no Eclipse sem instalar o "Google Plugin for Eclipse", isso ocorrerá. Após a instalação do "Google Plugin for Eclipse", esse erro desaparecerá.
fonte
Clique com o botão direito do mouse na pasta do projeto e selecione "Java Build Path". Em "Java Build Path", você poderá ver as bibliotecas. O Eclipse mostrará erros em qualquer uma dessas bibliotecas. A correção desses problemas ajudará a resolvê-los.
fonte
Eu tive esse erro depois de fazer uma mesclagem git de um ramo em que minhas classes estenderam uma nova interface. Foi o suficiente para atualizar (F5) a árvore de arquivos no quadro Package Explorer do Eclipse.
Parece que o Eclipse não atualizou tudo corretamente e, portanto, as classes estavam estendendo uma interface ainda não existente. Após a atualização, todos os erros desapareceram.
fonte
Eu tive que mudar do Eclipse Oxygen que obtive da IBM e usei o IBM JDK 8 para Eclipse Photon e Oracle JDK 8. Estou trabalhando em customizações Java para máximo.
fonte