Intellij Tidak dapat menyelesaikan simbol pada impor

127

Masalah ini terjadi sesekali untuk pustaka yang berbeda dan proyek yang berbeda. Saat mencoba mengimpor pustaka, paket akan dikenali, tetapi nama kelas tidak dapat diselesaikan.

Jika pada pernyataan impor, saya right-click -> Goto -> the package's declaration, saya melihat semua kelas yang didekompilasi ditampilkan di panel samping - Termasuk yang saya butuhkan - Jika saya mencoba melengkapi pernyataan impor secara otomatis, saya melihat kelas yang saya butuhkan tidak ditampilkan di dropdown.

Saya sudah mencoba membuat cache tidak valid, tidak berhasil. Saya tidak dapat menemukan konflik kelas - tidak ada file jar lain di classpath saya dengan nama paket yang sama. Saya dapat mengimpor kelas ini ke proyek lain.

Silakan lihat tangkapan layar:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Ada yang punya petunjuk?

Asaf Ebgi
sumber
1
Apakah Anda yakin bahwa perpustakaan telah ditambahkan ke modul? Ini bisa ditambahkan sebagai pustaka proyek tetapi tidak berada di jalur kelas modul.
mkobit
ya - Dalam Struktur Proyek, perpustakaan ditambahkan sebagai ketergantungan - Sebenarnya, saya pikir ini adalah bug di Intellij - Terjadi secara acak untuk berbagai perpustakaan / proyek -
Membuat
Jika semua yang disebutkan dalam jawabannya benar. tutup proyek dan impor kembali. ini memecahkan masalah ini untuk saya.
Hari Krishnan

Jawaban:

250

Anda dapat mencoba membatalkan cache dan memulai ulang intellij, dalam banyak kasus ini akan membantu.

File -> Invalidate Cache / Restart

sahitya
sumber
proyek pembersihan juga membantu
GeRyCh
2
@GeRyCh IMHO, Eclipse cleaning = Intellij Invalidate cache
Gangnus
Tidak berhasil untuk saya juga. JUnit saya adalah 'Perpustakaan Global'. Ketika saya menghapus ini dan menambahkan distribusi JUnit5 IntelliJ sendiri, itu berfungsi. Ketika saya kemudian mengubah ketergantungan ini menjadi pustaka global lagi, kesalahan kembali. Saya menduga ini adalah bug karena mengubahnya menjadi perpustakaan proyek sebagai gantinya berfungsi dengan baik.
Mark Jeronimus
1
Terima kasih ini berhasil untuk saya. Saya baru saja mulai menggunakan Intellij dan saya sudah sangat kesal karenanya. Seseorang tidak dapat melompat keluar dari tanda kurung, perlu memulai ulang program agar dapat dikompilasi dengan benar, ini benar-benar Windows dari Java IDE.
azureai
3
Saya mengalami masalah ini setidaknya sekali sehari sejak beberapa minggu. Benar-benar membuatku stres karena mengindeks ulang semuanya membutuhkan waktu lama.
spyro
38

Ada beberapa alasan untuk ini. Dalam kasus saya, itu adalah masalah akar sumber yang salah. Cache yang tidak valid tidak berfungsi bersama dengan solusi lain.

Periksa root sumber modul Anda.

  1. Struktur Proyek ( Ctrl+ Alt+ Shift+ S).

  2. Modul

  3. Pilih modul masalah Anda.

  4. Ubah tab di atas jendela "Sumber".

  5. Hapus akar sumber yang tidak diinginkan. Pertahankan satu dan tambahkan src dan uji akar sumber di root ini.

Vipin Thomas
sumber
1
Saya tidak tahu apakah ini berfungsi untuk sebagian orang, tetapi tampaknya demikian, dan saya bertanya-tanya alasannya: sebenarnya sinkronisasi Gradle Anda berikutnya akan membuat ulang semua direktori sumber yang baru saja Anda hapus.
Fran Marzoa
16

IntelliJ memiliki masalah dalam menyelesaikan dependensi. Coba yang berikut ini:

  1. Klik kanan pada pom.xml -> Maven -> Reimport
  2. Sekali lagi Klik kanan pada pom.xml -> Maven -> Hasilkan sumber dan perbarui folder
Chandlersingh
sumber
12

Periksa dependensi modul Anda.

  1. Struktur Proyek ( Ctrl+ Alt+ Shift+ S).
  2. Modul
  3. Pilih modul masalah Anda.
  4. Ubah tab di atas jendela "Dependencies".
  5. Periksa perpustakaan apa yang dibutuhkan (mungkin, Anda perlu menambahkan perpustakaan tertentu di tab 'perpustakaan') atau modul telah terdaftar di sini dan memiliki ruang lingkup yang tepat (sebagian besar 'kompilasi').
Artem Moiseyenko
sumber
12

Jalankan perintah ini di konsol proyek Anda:

mvn idea:idea

Selesai. Mengalami masalah ini berkali-kali. Mencoba 'Invalidate Cache & Restart' dan semua solusi lainnya. Menjalankan perintah itu bekerja dengan sempurna bagi saya. Saya saat ini menggunakan IntelliJ 2019.2, tetapi ini juga terjadi di versi sebelumnya dan solusi juga berfungsi.

Liuver Reynier Durán Pérez
sumber
Btw plugin maven ini tidak lagi dipertahankan
nabster
11

Saya menghadapi masalah serupa, komentar Mike membantu saya bergerak ke arah untuk menyelesaikannya.
Meskipun perpustakaan yang diperlukan adalah bagian dari modul dalam proyek saya juga, itu membutuhkan perubahan ruang lingkup. Dalam ketergantungan modul, saya mengubah cakupan menjadi " Kompilasi " daripada " Uji " dan sekarang berfungsi dengan baik untuk saya.

gadis nakal
sumber
Kompilasi daripada Test bekerja untuk saya. Apa kamu tahu kenapa?
30
1
Bagaimana kamu melakukan ini? Siapa Mike?
cellepo
8

File -> Invalidate Caches / Restart atau membangun kembali proyek tidak berhasil.

Yang berhasil untuk proyek Gradle saya adalah "Menyegarkan semua proyek Gradle" dari tab Gradle di pojok kanan atas IntelliJ v2017, menggunakan tombol bertanda kuning yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

eaykin
sumber
Jawaban ini juga berhasil untuk proyek Maven saya. Untuk IntelliJ 2018.3.4 ikonnya tetap sama (panah berputar biru) tetapi judul opsi yang tepat disebut 'Impor Ulang Semua Proyek Maven'. Terima kasih banyak kepada penulis, sangat melegakan untuk menemukan solusi yang tepat untuk masalah Anda setelah penelitian satu jam
TomateFraiche
4

Saya menemukan jawaban berikut dari @ jossef-harush dan @ matt-leidholm berguna dari tautan lain

  • di editor IntelliJ, klik kata kunci merah ( Integermisalnya) dan tekan ALT+ ENTER(atau klik ikon bola lampu)
  • pilih Setup JDKdari menu niat

Menu niat IntelliJ

  • klik Configure

Dialog pemilihan SDK proyek

  • Dalam kasus saya, JDKjalurnya salah (menunjuk ke arah /opt/jdk1.7.0_51sebaliknya /opt/jdk1.7.0_65)

Broken Configure SDK dialog

  • klik ...dan telusuri ke JDKjalur yang benar

Memperbaiki dialog Configure SDK

  • mari bersihkan cache

Menu IntelliJ File

manntsheth
sumber
4

File -> Invalidate Caches / Restart And Build your project

Harsh Mishra
sumber
3

Klik kanan pada file pom.xml, pergi ke Maven klik pada Reimport. Saya memiliki masalah serupa dan ini berhasil untuk saya.

rdutta
sumber
1

Saya mencoba membuat cache tidak valid dan memulai ulang, tetapi satu-satunya hal yang berhasil untuk saya adalah menghapus direktori .idea sepenuhnya, lalu membuat proyek baru dari awal.

sheldonkreger
sumber
Ini sebenarnya bukan solusi. Saya pernah mencobanya tetapi tidak mempengaruhi kasus saya.
Tung
1

Saya juga mendapatkan kesalahan ini beberapa kali ketika saya mencoba membangun proyek java baru.

Di bawah ini adalah langkah bagaimana saya mendapatkan masalah bodoh ini.

  1. Buat proyek kosong, dan buat direktori baru src/main/java.
  2. Buat paket sumber net.gongmingqm10.sketch.
  3. Gunakan gradle wrapper, gradle ideauntuk membangun barang gradle untuk proyek tersebut.
  4. Tambahkan beberapa dependensi dalam build.gradlefile, dan gradle buildimpor ulang proyek tersebut.
  5. Buat User.javadan School.javadalam paket yang sudah adanet.gongmingqm10.sketch
  6. Saya mendapat error saat mencoba menggunakan import School di User.java.
  7. Intellij terus mengeluh tidak bisa menyelesaikan simbol impor.

Larutan:

Bangun proyek terlebih dahulu, dan tandai main / java sebagai root sumber. Buat direktori baru dengan nama yang sama net.gongmingqm10.sketch. Pindahkan semua file dari paket lama yang mengganggu ke paket baru.

Penyebab utama:

Pohon direktori kode sumber

Seperti yang Anda lihat dari pohon. Saya mendapat nama direktori net.gongmingqm10.sketch. Tapi yang benar-benar kita butuhkan adalah direktori 3 level: net-> gongmingqm10-> sketch

Tetapi sebelum saya selesai membangun proyek saya di Intellij, saya membuat direktori baru bernama net.gongmingqm19.sketch, yang akan memberi saya direktori asli dengan nama tersebut net.gongmingqm10.sketch.

Saat kami mencoba mengimpornya. Jelas, bagaimana intellij dapat mengimpor file di bawah direktori weired dengan nama a.b.c.

Ming Gong
sumber
Terima kasih bung, ini masalah saya. edit: elaborating ... Saya menyalin dari modul 1 maven ke modul lainnya, dan salinan tersebut meratakan direktori. sementara Intellij tampak seperti semuanya telah disortir, folder saya sebenarnya adalah "abc" daripada a> b> c.
Qbert
1

@ Anton Dozortsev Saya dibuat gila oleh perilaku serupa; Saya akhirnya menginstal ulang IDE beberapa kali, hanya mengatasi masalah setelah menghapus aplikasi IDEA, semua cache, preferensi, dll.

Saya mencoba semua jenis langkah dalam interim, (seperti restart, invalidations, menghapus .ideadan *.imlfile, dan lain-lain.)

Ternyata, masalahnya karena idea.max.intellisense.filesizepengaturan IntelliJ . Saya telah mengaturnya ke 100KB, yang lebih kecil dari ukuran ketergantungan saya, yang menyebabkan IntelliJ menunjukkannya sebagai tidak diketahui, seperti di tangkapan layar Anda.

Memperbaiki:

  1. Klik Bantuan -> Edit Properti Khusus

  2. Tetapkan properti ke nilai yang lebih besar; defaultnya adalah 2500KB idea.max.intellisense.filesize=2500

Mihai Bojin
sumber
1

Punya masalah yang sama sampai saya perhatikan bahwa folder src ditandai sebagai sumber root, bukan java ! Mengubah ke hanya java (src / main / java) menjadi root sumber memecahkan masalah saya masukkan deskripsi gambar di sini

Pipo
sumber
1

Setelah pencarian yang lama, saya menemukan bahwa dependensi entah bagaimana rusak pada mesin saya dalam proyek maven. Anehnya, ketergantungan itu masih berfungsi dengan benar dalam kode java yang dikompilasi. Namun, ketika saya membersihkan dan membangun kembali cache dependensi maven, masalahnya hilang dan IntelliJ mengenali paketnya. Anda dapat melakukannya dengan menjalankan:

mvn dependency:purge-local-repository

Menariknya, sumber masalah saya bukan IntelliJ, tapi maven itu sendiri.

JohannesB
sumber
1

Silakan coba File-> Synchronize. Kemudian tutup dan buka kembali IntelliJ sebelum Anda membatalkan.

Setelah saya memulai ulang. Saya akan membatalkannya tetapi sinkronisasi menghapus semuanya setelah memulai ulang.

Adam M. Erickson
sumber
0

Simple Restart berhasil untuk saya.

Saya akan menyarankan percobaan pertama dengan restart dan kemudian Anda dapat memilih untuk membatalkan cache.

NB: Membersihkan cache sistem akan menghapus riwayat lokal.

neoguy
sumber
0

Saya memiliki masalah serupa dengan proyek Maven yang saya impor. Dalam satu modul, itu tidak dapat menyelesaikan simbol impor untuk bagian dari modul lainnya (ya, bagian dari modul itu dapat diselesaikan).

Saya mengubah "direktori home Maven" ke versi yang lebih baru memecahkan masalah saya.

Pembaruan: Baik selama 1 jam, kembali ke status rusak ...

Wenbin
sumber
0

Saya menemukan sumber penyebabnya!

Dalam kasus saya, saya menambahkan file jar termasuk beberapa file sumber java, tapi menurut saya sumber java buruk, di perpustakaan ketergantungan Intellij Idea menambahkan sumber otomatis, jadi di Editor impor itu BURUK, HANYA hapus kode sumber di " Project Structure "->" Library ", berfungsi untuk saya.

crazycode.dll
sumber
0

Apa yang dilakukannya untuk saya adalah mengedit file paket di folder .idea karena saya secara tidak sengaja menambahkan sumber ke perpustakaan jar ini dan android tidak dapat menyelesaikannya dengan menghapus baris sumber seperti yang ditandai dalam kesalahan perpustakaan gambar b / m .

Kemudian membangun kembali masalah gradle dan bam terpecahkan.

mario
sumber
0

Saya memiliki masalah yang sama dan alasannya adalah salah menandai sumber proyek.

Saya secara manual membuat Konten Root dan tidak memperhatikan bahwa src/main/testfolder itu ditandai sebagai Sourcesbukan Tests. Jadi itulah sebabnya kelas pengujian saya diasumsikan memiliki semua perpustakaan tes mereka ( JUnit, Mockito, dll) dengan ruang lingkup Kompilasi, tidak Test.

Segera setelah saya menandai src/main/testsebagai Tes dan membangun kembali modul semua kesalahan hilang.

Евгений Гордиенко
sumber
0

Saya mengalami ini baru-baru ini ketika mencoba menggunakan Intellij untuk bekerja di NiFi, ternyata masalahnya adalah bahwa NiFi membutuhkan Maven> = 3.1.0 dan versi yang saya periksa (saya kira default saya) adalah 3.0.5. Memperbarui versi Maven untuk proyek tersebut memperbaikinya, jadi dalam beberapa kasus kesalahan penyelarasan versi Maven dapat menjadi sesuatu yang perlu dilihat ... Saya kira itu cukup tidak biasa tetapi jika Anda sampai sejauh ini di utas Anda mungkin mengalami masalah yang tidak biasa :)

Isaac
sumber
0

Masalah yang sama. Jika metode ini tidak berhasil. Anda dapat mencoba menghapus lib dari repositori maven lokal, dan mengimpor kembali ke pom.

mvn repositori

Akhirnya itu baik-baik saja bagi saya.

proyek

Misire J
sumber
0

file-> Project Structure-> Modules, cari modul yang bermasalah, klik dan pilih Dependenciestab di sisi kanan. Klik tanda tambah hijau, coba tambahkan toples atau perpustakaan yang menyebabkan masalah. Itu berhasil untuk saya.

SteveHu
sumber
0

Tidak ada yang saya coba di atas yang berhasil untuk saya (bukan berarti saya mencoba setiap saran). Trik akhirnya adalah mengganti nama kelas - saya baru saja menambahkan 2 ke nama kelas dan nama file. Kemudian saya menyelesaikan semua referensi secara manual. (Karena tidak dikenali, pemfaktoran ulang tidak mengubah referensi secara otomatis.)

Setelah "2-versi" diselesaikan dengan senang hati di mana-mana, saya kemudian dapat memfaktor ulang dan menghapus 2 dari kelas dan file, dan semuanya berjalan sebagaimana mestinya.

greymatter
sumber
0

dalam kasus saya solusinya adalah menambahkan proyek sebagai proyek maven, selain fakta bahwa saya mengimpor sebagai proyek maven: P

buka pom.xml -> klik kanan -> tambahkan sebagai proyek maven

lempesis
sumber
0

Intelli iDEA menyebabkan masalah bodoh ini @ kali. Goto pom.xml sederhana, klik kanan dan lakukan -> Maven -> Impor ulang.

Ini seharusnya menyelesaikan masalah.

Aditya Goel
sumber
0

Untuk edisi 2020.1.4 Ultimate, saya harus melakukan hal berikut

View -> Maven -> Generate Sources and Update Folders For all Projects

Masalah bagi saya adalah perpustakaan tidak diisi mvn -U clean installdari terminal.

masukkan deskripsi gambar di sini

pengguna1599755
sumber
-1

Hilang io? Coba import org.openide.util.io.ImageUtilities.

Shanjun Li
sumber