Saya telah mengunduh beberapa perangkat lunak sumber terbuka yang ditulis dalam Java dan mencoba mengompilasinya menggunakan Eclipse. Saya mendapat kesalahan: " Hirarki tipe 'Nama kelas' tidak konsisten " dalam beberapa file. Apa yang menyebabkan kesalahan ini dan bagaimana cara memperbaikinya?
139
Maven
>Download Source
pada ketergantungan yang dipertanyakan.Kadang-kadang itu terjadi ketika Anda menambahkan stoples yang ANDA butuhkan, tetapi tidak termasuk toples yang dibutuhkan IT. Dalam kasus saya menambahkan semua stoples di kucing jantan / lib membantu saya untuk memecahkan masalah ini. Saya sedang mengerjakan aplikasi web.
sumber
Periksa kesalahan Anda (tab "spidol"). Saya juga memiliki kesalahan berikut:
dan ketika itu diperbaiki "kesalahan tidak konsisten" menghilang.
Sebenarnya saya telah menambahkan toples ke jalur build, tetapi untuk beberapa alasan mereka tidak bisa dibaca dengan kesalahan
Jadi alih-alih saya menambahkannya sebagai "Guci Eksternal". Itu membantu dan semua masalah kompilasi tidak ada lagi!
sumber
Saya memiliki masalah ini setelah saya memutakhirkan JDK ke versi baru. Saya harus memperbarui referensi ke perpustakaan di Project Properties / Java Build Path.
sumber
Satu lagi kasus yang saya miliki. Berikan jalur proyek yang benar, dan impor ke gerhana.
Lalu pergi ke Project -> Clean -> Clean all project.
sumber
Anda harus membersihkan proyek, atau memulai ulang Eclipse.
sumber
Anda akan melihat kesalahan ini jika beberapa kelas dalam file perpustakaan Anda yang Anda miliki di classpath merujuk ke kelas yang tidak ada yang bisa berada di file jar lain. Di sini, saya menerima kesalahan ini ketika saya tidak menambahkan
org.springframework.beans-3.1.2.RELEASE.jar
dan telah memperpanjang kelas dariorg.springframework.jdbc.core.support.JdbcDaoSupport
, yang berada di jalan kelasorg.springframework.jdbc-3.1.2.RELEASE.jar
saya.sumber
Masalahnya mungkin Anda memasukkan botol yang salah. Saya memiliki masalah yang sama dan alasannya adalah karena saya telah memasukkan pustaka JRE default yang salah dalam jalur pembangunan proyek. Saya telah menginstal Java dengan versi lain dan termasuk file JRE Java dengan versi yang berbeda. (Saya telah menginstal JRE 1.6 di sistem saya dan memiliki pustaka JRE 1.7 termasuk dalam path build karena Java yang diinstal sebelumnya) Mungkin Anda dapat memeriksa apakah pustaka JRE yang telah Anda sertakan dalam path build adalah versi yang benar yaitu. versi Java yang telah Anda instal di sistem Anda.
sumber
Saya pernah mengalami masalah ini di Eclipse Juno, penyebab utamanya adalah bahwa meskipun beberapa toples musim semi dimasukkan oleh dependensi pakar sementara, mereka termasuk dalam versi yang salah.
Jadi Anda harus memeriksa apakah menggunakan kerangka kerja termodulasi sebagai pegas bahwa setiap modul (atau setidaknya yang paling penting: inti, kacang, konteks, aop, tx, dll) berada di versi yang sama.
Untuk mengatasi masalah, saya telah menggunakan pengecualian maven dependnecy untuk menghindari versi dependensi sementara yang salah.
sumber
Kesalahan: hierarki jenis "nama kelas" adalah kesalahan yang tidak konsisten.
solusi: class OtherDepJar {} -> ada di dalam "other.dep.jar" .
kelas DepJar meluas OtherDepJar {} -> ada di dalam "dep.jar" .
class ProblematicClass extends DepJar {} -> ada di dalam proyek saat ini.
Jika dep.jar berada di classpath proyek, tetapi other.dep.jar tidak ada di classpath proyek, Eclipse akan menunjukkan "Hirarki tipe ... adalah kesalahan yang tidak konsisten"
sumber
Bagi saya, masalah ini disebabkan oleh impor yang salah. Bahkan, orang perlu memperbarui impor setelah menambahkan perpustakaan dukungan v7.
Itu dapat diperbaiki dengan melakukan sebagai berikut, untuk setiap kelas proyek Anda :
import android.[*]
, di setiap kelasandroid.support.[*]
(dan bukanandroid.[*]
).sumber
Itu pasti karena dependensi yang hilang yang tidak ada di maven pom.xml saya.
Sebagai contoh, saya ingin membuat tes integrasi untuk implementasi saya dari situs demo e-commerce berdaun lebar.
Saya telah memasukkan jar berdaun lebar dengan tes integrasi dari perdagangan berdaun lebar untuk menggunakan kembali file konfigurasi dan kelas pengujian dasar. Proyek itu memiliki dependensi pengujian lain yang belum saya sertakan dan saya menerima kesalahan "hierarki tidak konsisten".
Setelah menyalin "dependensi pengujian" dari broadleaf / pom.xml dan variabel properti terkait yang menyediakan versi untuk setiap dependensi di broadleaf / pom.xml, kesalahan hilang.
Properti itu:
Ketergantungan itu:
sumber
Jika kelas yang diperluas memiliki masalah maka pesan kesalahan di atas akan ditampilkan.
Contoh
perbaiki masalah di
Example1
sumber
Saya memiliki penanda masalah yang sama persis dan menyelesaikannya dengan menghapus penjelasan @Override dari metode yang sebenarnya implementasi pertama ("super" yang menjadi metode abstrak) dan bukan override.
sumber
Dalam kasus saya, referensi impor di banyak kelas berisi kata tambahan. Saya menyelesaikannya dengan mengedit semua file untuk mendapatkan impor yang benar. Saya mulai mengedit secara manual. Tetapi ketika saya melihat polanya, saya mengotomatiskannya dengan find..replace in eclipse. Ini menyelesaikan kesalahan.
sumber
Bagi saya itu mengubah level Android API menjadi satu dengan Google API
sumber
Saya juga mengalami masalah ini ... Saya menemukan bahwa hierarki kelas yang melempar pengecualian ini, tidak dapat dilacak sepanjang jalan kembali ke kelas akarnya oleh gerhana ... Saya Jelaskan:
Dalam kasus saya, saya memiliki 3 proyek java: A, B dan C ... di mana A dan B adalah proyek pakar dan C proyek java eclipse biasa ...
Dalam proyek A, saya memiliki antarmuka "interfaceA" ... Dalam proyek B, saya memiliki antarmuka "interfaceB" yang meluas "interfaceA" Dalam proyek C, saya memiliki kelas konkret "classC" yang mengimplementasikan "interfaceB"
"Project C" termasuk "project B" di path build-nya tetapi bukan "project A" (jadi itulah penyebab error) .... Setelah memasukkan "project A" di dalam path build "C" , semuanya kembali normal ...
sumber
Saya punya kelas yang memperluas LabelProvider dalam proyek dengan OSGi, ada kesalahan terjadi. Solusinya adalah: Menambahkan org.eclipse.jface ke plugin yang diperlukan di manifest.mf alih-alih mengimpor paket tunggal seperti org.eclipse.jface.viewers
sumber
jika Anda mengimpor proyek gerhana hanya 1. Pergi ke pengaturan jalur pembuatan java di bawah properti proyek. 2. Jika pustaka Sistem JRE memiliki tanda kesalahan lampirkan padanya klik dua kali untuk membuka jendela Edit pustaka 3. Ubah lingkungan eksekusi ke versi java yang benar dari sistem atau pilih edit pengaturan lain dengan memeriksa tombol radio yang ditetapkan ke mereka. 4. Klik selesai
sumber
Saat mengimpor proyek GWT di Eclipse tanpa menginstal "Google Plugin untuk Eclipse", ini akan terjadi. Setelah memasang "Google Plugin untuk Eclipse", kesalahan ini akan hilang.
sumber
Klik kanan pada folder proyek dan pilih "Java Build Path". Di bawah "Java Build Path" Anda harus dapat melihat perpustakaan. Eclipse akan menampilkan kesalahan di salah satu perpustakaan itu. Memperbaiki masalah tersebut akan membantu menyelesaikan masalah tersebut.
sumber
Saya mengalami kesalahan ini setelah melakukan git merge dari cabang tempat kelas saya memperluas antarmuka baru. Itu sudah cukup untuk Refresh (F5) Pohon-File dalam bingkai Package Explorer dari Eclipse.
Tampaknya Eclipse tidak memperbarui semuanya dengan benar sehingga kelas memperluas antarmuka yang belum ada. Setelah refresh, semua kesalahan hilang.
sumber
Saya harus beralih dari Eclipse Oxygen yang saya dapatkan dari IBM dan menggunakan IBM JDK 8 ke Eclipse Photon dan Oracle JDK 8. Saya sedang mengerjakan kustomisasi Java untuk maksimal.
sumber