Tambahkan tabung yang berisi iglu.ir.TermVector di jalur sumber proyek Anda.
Harry Joy
2
Jika Anda yakin kelasnya disediakan, coba bersihkan dan segarkan semua proyek Anda
Mirco
Ini terjadi pada saya karena ketergantungan transitif dalam toples saya
Janac Meena
persis! toples ini harus ada di dependensi pom.xml.
gaurav
Jawaban:
193
Ini berarti: "Kelas yang Anda gunakan membutuhkan kelas lain yang tidak ada di classpath." Anda harus memastikan (seperti yang disarankan Harry Joy) untuk menambahkan toples yang diperlukan ke classpath.
Jawaban universal dan sederhana yang banyak membantu saya dalam kasus yang berbeda :) THX
Mariusz Chw
Dalam Anda mencoba menghapus kelas pada khususnya, periksa kelas induk untuk referensi ke jenis yang hilang. Jika itu tidak selalu apa artinya pesan ini, itu artinya mungkin sebagian besar waktu.
butallmj
Ya saya menemukan bahwa itu karena beberapa guci yang hilang dalam botol referensi :) Terima kasih.
Ali Imran
21
@ Andre, Mengapa dikatakan secara tidak langsung direferensikan kemudian? Tidakkah seharusnya dikatakan bahwa itu sama sekali tidak dirujuk?
Pacerier
2
@Pacerier itu tidak benar. Bukan kode Anda yang secara langsung mereferensikan tipe ini, melainkan sesuatu yang digunakan kode Anda, jadi ketergantungan dari kode Anda ke tipe itu adalah "hanya" transitif, tetapi ada di sana. "Secara tidak langsung" memberi tahu Anda ke mana harus mencari.
hiergiltdiestfu
22
Ini mungkin masalah Eclipse yang semakin bingung karena itu adalah kesalahan aktual. Saya mengabaikan kesalahan dan menjalankan layanan web yang titik akhir pengaduannya, dan itu berjalan dengan baik, kecuali karena harus berurusan dengan dialog setiap kali saya ingin menjalankannya. Hanya kesalahan buram lain yang tidak memberi tahu saya apa pun.
Itu juga tidak ada dalam toples. Itu ada di salah satu proyek yang termasuk dalam semua proyek yang disertakan di mana itu relevan.
Jerry Miller
3
Saya sudah mengalami masalah ini dalam gerhana, namun membangun melalui pakar bekerja dengan baik. Cara mengatasinya adalah menghapus dan mengimpor kembali proyek di ruang kerja gerhana yang berisi kelas yang diperlukan.
PiersyP
Ini mungkin terjadi kadang-kadang, tetapi saya mengalami kesalahan yang memberikan respons yang sama, dan proyek tidak dapat dibangun.
Christopher Connery
13
Kadang-kadang terjadi pada saya, saya selalu memperbaikinya dengan perintah "mvn eclipse: clean" untuk membersihkan properti lama dan kemudian menjalankan mvn eclipse: eclipse -Dwtpversion = 2.0 (untuk proyek web tentu saja). Ada beberapa properti lama yang disimpan sehingga gerhana kadang-kadang bingung.
Saya membersihkan proyek (dari Project-> Clean ...) dan berhasil.
Anu Shibin Joseph Raj
mvn eclipse:cleandan / atau mvn eclipse:eclipsetampaknya merupakan trik sulap untuk membuatnya bekerja.
Antoine Martin
13
Saya memiliki kesalahan ini karena repositori pakar lokal yang rusak .
Jadi, untuk memperbaiki masalah, yang harus saya lakukan adalah pergi ke repositori saya dan menghapus folder di mana .jar yang bersangkutan, lalu memaksa sebuah update mavendi Eclipse.
Ini bekerja untuk saya, sementara di atas semua tidak. Masalah terjadi ketika salah satu rekan tim saya memperbarui versi repositori dari pom.
iaL
8
Kedengarannya seperti ini telah menjadi masalah yang diketahui (Bug 67414) yang diselesaikan pada 3.0 ... seseorang telah berkomentar bahwa itu terjadi pada mereka di 3.4 juga.
Sementara itu, pekerjaan sekitar adalah menghapus Perpustakaan Sistem JRE dari proyek dan kemudian menambahkannya kembali.
Here are the steps:
Pergi ke properti proyek dengan kesalahan build (klik kanan> Properties)
Lihat tab "Libraries" di bagian "Build Path"
Temukan "Pustaka Sistem JRE" di daftar (jika ini tidak ada maka pesan kesalahan ini bukan bug gerhana tetapi proyek yang salah dikonfigurasi)
Hapus "Perpustakaan Sistem JRE"
Tekan "Tambah Perpustakaan ...", Pilih "JRE System Library" dan tambahkan JRE yang sesuai untuk proyek (mis. 'WorkREace default JRE')
Tekan "Selesai" dalam pemilihan perpustakaan dan "OK" di properti proyek dan kemudian tunggu untuk membangun kembali proyek
Ya. Saya memiliki masalah yang sama dengan spring-web-3.0.1.RELEASE. Sementara itu terdaftar sebagai ketergantungan pada pom.xml, dan sudah berfungsi sebagai ketergantungan pada beberapa referensi, ketika saya membuat http.csrf (). disable (). cors (). disable (). httpBasic (). dan (). otorizeRequests () .antMatchers (PUBLIC_MATCHERS) .permitAll (). anyRequest (). Authentified (); Itu rusak. Lalu saya mengunduh file jar dan mengimpornya dengan cara manual tradisional.
Tsakiroglou Fotis
5
Kesalahan ini terjadi ketika kelas-kelas dalam file jar tidak mengikuti struktur yang sama seperti struktur folder jar.
misal jika file kelas Anda memiliki paket com.test.exam dan file classes.jar yang dibuat dari file kelas ini memiliki struktur test.exam ... kesalahan akan dilempar. Anda perlu memperbaiki struktur paket dari kelas Anda. Jar dan kemudian memasukkannya dalam jalur build ecplipse ...
Saya punya kasus menarik tentang masalah ini dengan Eclipse 4.4.2. Proyek saya (P1) mereferensikan kelas eksternal (proyek P2) dengan dua metode dengan nama yang sama tetapi jenis argumen yang berbeda:
public static void setItem(Integer id) …
public static void setItem(Item item) …
Jenis Itemitu terkandung dalam P3 proyek ketiga, yang saya tidak ingin terlihat di sini. P1 hanya memanggil metode pertama:
ExternalClass.setItem(Integer.valueOf(12345));
Jadi metode kedua, yang menggunakan Itemkelas, tidak digunakan, dan memang benar P3 tidak ada dalam kompilasi classpath - mengapa harus jika tidak digunakan.
Namun Eclipse memberitahuku
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
Kompilasi dari baris perintah tidak menghasilkan masalah seperti itu. Mengubah nama metode kedua (tidak digunakan di sini!) Membuat masalah hilang di Eclipse juga.
Jika Anda masih tidak dapat menemukan kesalahan dengan pengaturan Anda, Anda dapat mencoba Proyek -> Bersihkan dan bersihkan semua proyek di ruang kerja.
EDIT: Maaf, tidak melihat saran dari verbose_mode ... hal yang sama
Bagi saya, itu terjadi ketika saya memutakhirkan jdk saya ke 1.8.0_60 dengan set toples lama saya telah digunakan untuk waktu yang lama. Jika saya kembali ke jdk1.7.0_25, semua masalah ini hilang. Tampaknya ada masalah tentang kompatibilitas antara JRE dan perpustakaan.
Saya mendapatkan kesalahan ketika saya hanya mengubah beberapa pengaturan svn dan tidak ada apa pun dalam kode. Hanya membersihkan proyek memperbaiki kesalahan.
Dalam kasus saya, saya membuat proyek dan membuatnya minSdkVersion=9dan targetSdkVersion=17. Saya menggunakan secara otomatis libs/android-support-v4.jar. Saya juga harus memanfaatkan ActionBarActivitymenggunakan android-support-v7-appcomapt.jar. Jadi saya hanya menyalin android-support-v7-appcompat.jarfile dari android-sdk/extras/andrid/support/v7/appcompat/libsfolder dan menempelkannya ke libsfolder proyek saya . Dan ini menyebabkan kesalahan di atas. Jadi pada dasarnya, saya perlu meletakkan android-support-v4.jarfile android-sdk/extras/andrid/support/v7/appcompat/libsjuga ke libsfolder proyek saya . Sesuai pengetahuan saya v7.jarfile memiliki dependensi pada v4.jarfile. Jadi, dibutuhkan v4.jarfile sendiri , bukan proyek saya, v4.jarfile yang dibuat secara otomatis .
Cepat dan Sederhana, saya memperbaikinya dengan cara ini (saya menggunakan versi ADT: v21.0.0-531062 pada edisi Windows XP home)
File manifes yang dibuka.
Mengubah minSdkVersion proyek yang ada ke nilai yang sama dengan maxSdkVersion (saran: mungkin baik untuk membuat proyek baru dan melihat apa itu maxSdkVersion)
Simpan file manifes.
Klik kanan proyek dan pilih Bangun Proyek.
Dari menu atas: Proyek - Bersihkan .. - centang Hanya proyek yang relevan, di bawah ini saya periksa Mulai segera membangun dan Buat hanya proyek yang dipilih dan OK.
buka file java - TIDAK ada kesalahan merah lagi!
Kembali ke langkah 1 di atas dan ubah Kembali minSdkVersion ke nilai asli itu (untuk mendukung sebanyak mungkin versi Android).
Ini berhasil, tetapi masalah kembali setiap beberapa hari. Saya melakukan hal yang sama seperti di atas dan itu memecahkan dan membuat saya berkembang.
Selain penyebab yang sudah disarankan dari kehilangan file kelas kesalahan ini juga dapat menunjukkan file kelas duplikat, gerhana melaporkan kesalahan ini ketika file kelas di jalur build menggunakan kelas lain yang memiliki banyak definisi di jalur build.
Karena Anda memberi kami detail yang sangat sedikit, kemungkinan besar apa yang Anda lakukan, yang merupakan kesalahan yang sangat mudah dibuat, adalah bahwa alih-alih menuju ke
Build Path > Configure Build Path > Projects
dan menambahkan folder proyek tambahan dari sana, sebagai gantinya Anda pergi ke
Build Path > Configure Build Path > Libraries
dan menambahkan folder proyek Anda dari sana sebagai gantinya.
Ini jelas merupakan kasus jika semua kode Anda benar, tetapi setelah mengatur ulang impor secara otomatis melalui ctrl+space pintasan, alih-alih pernyataan impor Anda yang merujuk ke proyek com.your.additional, referensi Anda semua mengarah ke proyek bin.com.your.additional.
Perhatikan tempat sampah. Berarti bahwa Anda -adalah- secara tidak langsung merujuk ke kelas Anda dengan memperlakukan struktur folder proyek Anda yang lain sebagai pustaka, membuat IDE Anda melakukan semua wokr untuk menemukan kelas biner persis yang Anda maksud.
Untuk memperbaikinya, hapus folder dari Perpustakaan, dan sebagai gantinya tambahkan di bawah tab Proyek, dan atur ulang impor Anda. Proyek Anda seharusnya bekerja dengan baik.
Ketika saya menggunakan versi gerhana baru dan mencoba menggunakan ruang kerja sebelumnya yang saya gunakan dengan versi gerhana lama, kesalahan ini terjadi.
Inilah cara saya memecahkan masalah:
Klik kanan proyek saya di Package Explorer -> Properties -> Java Build Path -> Libraries -> Saya melihat kesalahan (Cross Sign) di JRE System Library. Karena jalan tidak dapat ditemukan. -> Klik dua kali Pustaka Sistem JRE -> Pilih opsi "Workspace Default JRE" -> Finish -> OK. -> BUM ITU BEKERJA
Dalam kasus saya itu adalah hasil dari menambahkan ketergantungan baru ke pom.xmlfile saya .
Ketergantungan baru tergantung pada versi lama perpustakaan (2.5). Perpustakaan yang sama diperlukan oleh perpustakaan lain di sayapom.xml , tetapi itu membutuhkan versi 3.0.
Untuk beberapa alasan, ketika Maven menemukan konflik ini, ia hanya menghilangkan versi terbaru. Di Eclipse saat melihat pom.xmlAnda dapat memilih tab "hierarki ketergantungan" di bagian bawah untuk melihat bagaimana dependensi diselesaikan. Di sini Anda akan menemukan jika perpustakaan (dan dengan demikian kelas) yang bersangkutan telah dihilangkan karena alasan ini.
Dalam kasus saya itu semudah mengunci versi yang lebih baru. Anda dapat melakukannya dengan mengklik kanan entri - ada opsi untuk menguncinya di menu konteks.
Jawaban:
Ini berarti: "Kelas yang Anda gunakan membutuhkan kelas lain yang tidak ada di classpath." Anda harus memastikan (seperti yang disarankan Harry Joy) untuk menambahkan toples yang diperlukan ke classpath.
sumber
Ini mungkin masalah Eclipse yang semakin bingung karena itu adalah kesalahan aktual. Saya mengabaikan kesalahan dan menjalankan layanan web yang titik akhir pengaduannya, dan itu berjalan dengan baik, kecuali karena harus berurusan dengan dialog setiap kali saya ingin menjalankannya. Hanya kesalahan buram lain yang tidak memberi tahu saya apa pun.
sumber
Kadang-kadang terjadi pada saya, saya selalu memperbaikinya dengan perintah "mvn eclipse: clean" untuk membersihkan properti lama dan kemudian menjalankan mvn eclipse: eclipse -Dwtpversion = 2.0 (untuk proyek web tentu saja). Ada beberapa properti lama yang disimpan sehingga gerhana kadang-kadang bingung.
sumber
mvn eclipse:clean
dan / atau mvneclipse:eclipse
tampaknya merupakan trik sulap untuk membuatnya bekerja.Saya memiliki kesalahan ini karena repositori pakar lokal yang rusak .
Jadi, untuk memperbaiki masalah, yang harus saya lakukan adalah pergi ke repositori saya dan menghapus folder di mana .jar yang bersangkutan, lalu memaksa sebuah
update maven
di Eclipse.sumber
Kedengarannya seperti ini telah menjadi masalah yang diketahui (Bug 67414) yang diselesaikan pada 3.0 ... seseorang telah berkomentar bahwa itu terjadi pada mereka di 3.4 juga.
Sementara itu, pekerjaan sekitar adalah menghapus Perpustakaan Sistem JRE dari proyek dan kemudian menambahkannya kembali.
Pergi ke properti proyek dengan kesalahan build (klik kanan> Properties)
Lihat tab "Libraries" di bagian "Build Path"
Temukan "Pustaka Sistem JRE" di daftar (jika ini tidak ada maka pesan kesalahan ini bukan bug gerhana tetapi proyek yang salah dikonfigurasi)
Hapus "Perpustakaan Sistem JRE"
Tekan "Tambah Perpustakaan ...", Pilih "JRE System Library" dan tambahkan JRE yang sesuai untuk proyek (mis. 'WorkREace default JRE')
Tekan "Selesai" dalam pemilihan perpustakaan dan "OK" di properti proyek dan kemudian tunggu untuk membangun kembali proyek
Semoga kesalahan akan teratasi ...
sumber
Kesalahan ini terjadi ketika kelas-kelas dalam file jar tidak mengikuti struktur yang sama seperti struktur folder jar.
misal jika file kelas Anda memiliki paket com.test.exam dan file classes.jar yang dibuat dari file kelas ini memiliki struktur test.exam ... kesalahan akan dilempar. Anda perlu memperbaiki struktur paket dari kelas Anda. Jar dan kemudian memasukkannya dalam jalur build ecplipse ...
sumber
Saya mendapat pengecualian ini karena gerhana bekerja di versi jdk yang berbeda, hanya berubah menjadi yang benar, bersih dan membangun dan bekerja!
sumber
Saya punya kasus menarik tentang masalah ini dengan Eclipse 4.4.2. Proyek saya (P1) mereferensikan kelas eksternal (proyek P2) dengan dua metode dengan nama yang sama tetapi jenis argumen yang berbeda:
Jenis
Item
itu terkandung dalam P3 proyek ketiga, yang saya tidak ingin terlihat di sini. P1 hanya memanggil metode pertama:Jadi metode kedua, yang menggunakan
Item
kelas, tidak digunakan, dan memang benar P3 tidak ada dalam kompilasi classpath - mengapa harus jika tidak digunakan.Namun Eclipse memberitahuku
Kompilasi dari baris perintah tidak menghasilkan masalah seperti itu. Mengubah nama metode kedua (tidak digunakan di sini!) Membuat masalah hilang di Eclipse juga.
sumber
Apa yang diperbaiki untuk saya adalah
right clicking on project > Maven > Update Project
sumber
Jika Anda masih tidak dapat menemukan kesalahan dengan pengaturan Anda, Anda dapat mencoba Proyek -> Bersihkan dan bersihkan semua proyek di ruang kerja.
EDIT: Maaf, tidak melihat saran dari verbose_mode ... hal yang sama
sumber
Bagi saya, itu terjadi ketika saya memutakhirkan jdk saya ke 1.8.0_60 dengan set toples lama saya telah digunakan untuk waktu yang lama. Jika saya kembali ke jdk1.7.0_25, semua masalah ini hilang. Tampaknya ada masalah tentang kompatibilitas antara JRE dan perpustakaan.
sumber
Saya mendapatkan kesalahan ketika saya hanya mengubah beberapa pengaturan svn dan tidak ada apa pun dalam kode. Hanya membersihkan proyek memperbaiki kesalahan.
sumber
Dalam kasus saya, saya membuat proyek dan membuatnya
minSdkVersion=9
dantargetSdkVersion=17
. Saya menggunakan secara otomatislibs/android-support-v4.jar
. Saya juga harus memanfaatkanActionBarActivity
menggunakanandroid-support-v7-appcomapt.jar
. Jadi saya hanya menyalinandroid-support-v7-appcompat.jar
file dariandroid-sdk/extras/andrid/support/v7/appcompat/libs
folder dan menempelkannya kelibs
folder proyek saya . Dan ini menyebabkan kesalahan di atas. Jadi pada dasarnya, saya perlu meletakkanandroid-support-v4.jar
fileandroid-sdk/extras/andrid/support/v7/appcompat/libs
juga kelibs
folder proyek saya . Sesuai pengetahuan sayav7.jar
file memiliki dependensi padav4.jar
file. Jadi, dibutuhkanv4.jar
file sendiri , bukan proyek saya,v4.jar
file yang dibuat secara otomatis .sumber
Cepat dan Sederhana, saya memperbaikinya dengan cara ini (saya menggunakan versi ADT: v21.0.0-531062 pada edisi Windows XP home)
Ini berhasil, tetapi masalah kembali setiap beberapa hari. Saya melakukan hal yang sama seperti di atas dan itu memecahkan dan membuat saya berkembang.
sumber
Selain penyebab yang sudah disarankan dari kehilangan file kelas kesalahan ini juga dapat menunjukkan file kelas duplikat, gerhana melaporkan kesalahan ini ketika file kelas di jalur build menggunakan kelas lain yang memiliki banyak definisi di jalur build.
sumber
Karena Anda memberi kami detail yang sangat sedikit, kemungkinan besar apa yang Anda lakukan, yang merupakan kesalahan yang sangat mudah dibuat, adalah bahwa alih-alih menuju ke
Build Path > Configure Build Path > Projects
dan menambahkan folder proyek tambahan dari sana, sebagai gantinya Anda pergi ke
Build Path > Configure Build Path > Libraries
dan menambahkan folder proyek Anda dari sana sebagai gantinya.
Ini jelas merupakan kasus jika semua kode Anda benar, tetapi setelah mengatur ulang impor secara otomatis melalui
ctrl+space
pintasan, alih-alih pernyataan impor Anda yang merujuk ke proyek com.your.additional, referensi Anda semua mengarah ke proyek bin.com.your.additional.Perhatikan tempat sampah. Berarti bahwa Anda -adalah- secara tidak langsung merujuk ke kelas Anda dengan memperlakukan struktur folder proyek Anda yang lain sebagai pustaka, membuat IDE Anda melakukan semua wokr untuk menemukan kelas biner persis yang Anda maksud.
Untuk memperbaikinya, hapus folder dari Perpustakaan, dan sebagai gantinya tambahkan di bawah tab Proyek, dan atur ulang impor Anda. Proyek Anda seharusnya bekerja dengan baik.
sumber
Ketika saya menggunakan versi gerhana baru dan mencoba menggunakan ruang kerja sebelumnya yang saya gunakan dengan versi gerhana lama, kesalahan ini terjadi.
Inilah cara saya memecahkan masalah:
Klik kanan proyek saya di Package Explorer -> Properties -> Java Build Path -> Libraries -> Saya melihat kesalahan (Cross Sign) di JRE System Library. Karena jalan tidak dapat ditemukan. -> Klik dua kali Pustaka Sistem JRE -> Pilih opsi "Workspace Default JRE" -> Finish -> OK. -> BUM ITU BEKERJA
FYI.
sumber
Dalam kasus saya itu adalah hasil dari menambahkan ketergantungan baru ke
pom.xml
file saya .Ketergantungan baru tergantung pada versi lama perpustakaan (2.5). Perpustakaan yang sama diperlukan oleh perpustakaan lain di saya
pom.xml
, tetapi itu membutuhkan versi 3.0.Untuk beberapa alasan, ketika Maven menemukan konflik ini, ia hanya menghilangkan versi terbaru. Di Eclipse saat melihat
pom.xml
Anda dapat memilih tab "hierarki ketergantungan" di bagian bawah untuk melihat bagaimana dependensi diselesaikan. Di sini Anda akan menemukan jika perpustakaan (dan dengan demikian kelas) yang bersangkutan telah dihilangkan karena alasan ini.Dalam kasus saya itu semudah mengunci versi yang lebih baru. Anda dapat melakukannya dengan mengklik kanan entri - ada opsi untuk menguncinya di menu konteks.
sumber
Arahkan JRE di jalur Build ke JDK. Itu berhasil bagi saya.
sumber