Saya mendapat kesalahan di Eclipse. Apa arti pesan kesalahan ini:
Jenis iglu.ir.TermVector tidak dapat diselesaikan. Ini secara tidak langsung direferensikan dari file .class yang diperlukan
Saya mendapat kesalahan di Eclipse. Apa arti pesan kesalahan ini:
Jenis iglu.ir.TermVector tidak dapat diselesaikan. Ini secara tidak langsung direferensikan dari file .class yang diperlukan
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.
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.
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.
mvn eclipse:clean
dan / atau mvn eclipse: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.
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
Semoga kesalahan akan teratasi ...
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 mendapat pengecualian ini karena gerhana bekerja di versi jdk yang berbeda, hanya berubah menjadi yang benar, bersih dan membangun dan bekerja!
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 Item
itu 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 Item
kelas, 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.
Apa yang diperbaiki untuk saya adalah right clicking on project > Maven > Update Project
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=9
dan targetSdkVersion=17
. Saya menggunakan secara otomatis libs/android-support-v4.jar
. Saya juga harus memanfaatkan ActionBarActivity
menggunakan android-support-v7-appcomapt.jar
. Jadi saya hanya menyalin android-support-v7-appcompat.jar
file dari android-sdk/extras/andrid/support/v7/appcompat/libs
folder dan menempelkannya ke libs
folder proyek saya . Dan ini menyebabkan kesalahan di atas. Jadi pada dasarnya, saya perlu meletakkan android-support-v4.jar
file android-sdk/extras/andrid/support/v7/appcompat/libs
juga ke libs
folder proyek saya . Sesuai pengetahuan saya v7.jar
file memiliki dependensi pada v4.jar
file. Jadi, dibutuhkan v4.jar
file sendiri , bukan proyek saya, v4.jar
file 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)
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
FYI.
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 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.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.
Arahkan JRE di jalur Build ke JDK. Itu berhasil bagi saya.