Intellij İçe aktarmada sembol çözülemiyor


127

Bu sorun, farklı kitaplıklar ve farklı projeler için ara sıra meydana gelir. Bir kitaplığı içe aktarmaya çalışırken, paket tanınır, ancak sınıf adı çözülemez.

Import deyiminde, ben right-click -> Goto -> the package's declaration, yan bölmede görüntülenen tüm derlenmiş sınıfları görüyorum - İhtiyacım olanlar dahil - Import deyimini otomatik olarak tamamlamaya çalışırsam, ihtiyacım olan sınıfın yıkılmak.

Zaten önbellekleri geçersiz kılmayı denedim, çalışmıyor. Herhangi bir sınıf çakışması bulamıyorum - sınıf yolumda aynı paket adına sahip başka bir jar dosyası yok. Bu sınıfı diğer projelere aktarabiliyorum.

Lütfen ekran görüntülerine bakın:

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

Bir fikri olan var mı?


1
Kitaplığın modüle eklendiğinden emin misiniz? Bir proje kitaplığı olarak eklenebilir ancak modül sınıf yolunda olamaz.
mkobit

evet - Proje Yapısında, kütüphane bir bağımlılık olarak eklenmiştir - Aslında bunun Intellij'de bir hata olduğunu düşünüyorum - Farklı kütüphaneler / projeler için rastgele oluyor - Projeyi sıfırdan yeniden oluşturmak genellikle
sorunu

Cevapta bahsedilen her şey doğruysa. projeyi kapatın ve yeniden içe aktarın. bu benim için bu sorunu çözdü.
Hari Krishnan

Yanıtlar:


250

önbelleği geçersiz kılmayı ve intellij'i yeniden başlatmayı deneyebilirsiniz, çoğu durumda yardımcı olacaktır.

Dosya -> Önbellekleri Geçersiz Kıl / Yeniden Başlat


temizlik projesi de yardımcı oldu
GeRyCh

2
@GeRyCh IMHO, Eclipse temizleme = Intellij Önbelleği geçersiz
kılma

Benim için de çalışmadı. JUnit'im bir 'Küresel Kitaplık'tı. Bunu kaldırıp IntelliJ'in kendi JUnit5 dağıtımını eklediğimde çalışıyor. Daha sonra bu bağımlılığı tekrar global bir kitaplığa dönüştürdüğümde, hatalar geri dönüyor. Bunun bir hata olduğundan şüpheleniyorum çünkü bunun yerine bir proje kitaplığına dönüştürmek iyi çalışıyor.
Mark Jeronimus

1
Teşekkür ederim bu benim için çalıştı. Intellij kullanmaya yeni başladım ve bundan çok rahatsız oldum. Parantezlerin dışına atlanamaz, düzgün bir şekilde derlenmesi için programın yeniden başlatılması gerekir, bu gerçekten Java IDE'lerin Windows'udur.
azureai

3
Bu problemi birkaç haftadan beri günde en az bir kez yaşıyorum. Her şeyi yeniden indekslemek sonsuza kadar sürdüğü için beni gerçekten strese sokuyor.
spyro

38

Bunun birden çok nedeni olabilir. Benim durumumda bu yanlış kaynak kök sorunuydu. Geçersiz kılma önbellekleri diğer çözümlerle birlikte çalışmadı.

Modül kaynak köklerinizi kontrol edin.

  1. Proje Yapısı ( Ctrl+ Alt+ Shift+ S).

  2. Modüller

  3. Sorun modülünüzü seçin.

  4. "Kaynaklar" penceresinin üstündeki sekmeyi değiştirin.

  5. İstenmeyen kaynak köklerini kaldırın. Birini tutun ve src ekleyin ve bu köke kaynak kökleri test edin.


1
Bunun bazı insanlar için işe yarayıp yaramadığını bilmiyorum, ama öyle görünüyor ve nedenini merak ediyorum: aslında bir sonraki Gradle senkronizasyonunuz az önce kaldırdığınız tüm bu kaynak dizinlerini yeniden oluşturacak.
Fran Marzoa

16

IntelliJ, bağımlılıkları çözmede sorunlar yaşıyor. Takip etmeyi dene:

  1. Pom.xml -> Maven -> Yeniden İçe Aktar'a sağ tıklayın
  2. Yine pom.xml -> Maven -> Kaynak oluştur ve klasörleri güncelle üzerine sağ tıklayın

12

Modül bağımlılıklarınızı kontrol edin.

  1. Proje Yapısı ( Ctrl+ Alt+ Shift+S).
  2. Modüller
  3. Sorun modülünüzü seçin.
  4. "Bağımlılıklar" penceresinin üstündeki sekmeyi değiştirin.
  5. Hangi kütüphaneye ihtiyaç duyulduğunu kontrol edin (belki, 'kütüphaneler' sekmesinde belirtilen kütüphaneyi eklemeniz gerekir) veya modül burada listelendi ve doğru kapsamı var (çoğunlukla 'derleme').

12

Bu komutu proje konsolunuzda çalıştırın:

mvn idea:idea

Bitti. Bu sorunu birçok kez yaşadım. 'Önbelleği Geçersiz Kıl ve Yeniden Başlat' ve diğer tüm çözümler denendi. Bu komutu çalıştırmak benim için mükemmel çalışıyor. Şu anda IntelliJ 2019.2 kullanıyorum, ancak bu önceki sürümlerde de oldu ve çözüm de çalıştı.


Btw bu maven eklenti artık edilir tutulan
nabster

11

Benzer bir sorunla karşılaştım, Mike'ın yorumu sorunu çözme yönünde hareket etmeme yardımcı oldu.
Gerekli kütüphane benim projemde de modülün bir parçası olsa da kapsam değişikliğine ihtiyacı vardı. Modül bağımlılığında, kapsamı " Test " yerine " Derleme " olarak değiştirdim ve şimdi benim için iyi çalışıyor.


Test benim için çalışıyor yerine derleyin. Neden biliyor musun?
30

1
Bunu nasıl yapıyorsun? Mike kimdir?
cellepo

8

Dosya -> Invalidate'yi Önbellekler / Yeniden veya yeniden proje yaptım değil iş kel ben.

Gradle projem için işe yarayan şey, IntelliJ v2017'nin sağ üst köşesindeki Gradle sekmesinden aşağıda gösterilen sarı işaretli düğmeyi kullanarak "Tüm Gradle projelerini yenilemekti":

görüntü açıklamasını buraya girin


Bu cevap Maven projem için de iş yaptı. IntelliJ 2018.3.4 için simge aynı kalır (mavi dönen oklar) ancak seçeneğin tam başlığı 'Tüm Maven Projelerini Yeniden İçe Aktar' olarak adlandırılır. Yazara göre çok büyük, bir saatlik bir araştırmanın ardından probleminize doğru bir çözüm bulmak çok rahatlatıcı
TomateFraiche

4

@ Jossef-harush ve @ matt-leidholm'den gelen aşağıdaki yanıtı başka bir bağlantıdan yararlı buldum

  • IntelliJ düzenleyicide, kırmızı anahtar kelimeyi ( Integerörneğin) tıklayın ve ALT+ tuşuna basın ENTER(veya ampul simgesini tıklayın)
  • seçmek Setup JDKniyetleri menüden

IntelliJ niyet menüsü

  • tıklamak Configure

Proje SDK seçimi iletişim kutusu

  • Benim durumumda, JDKyol yanlıştı ( /opt/jdk1.7.0_51yerine işaret edildi /opt/jdk1.7.0_65)

SDK'yı Yapılandırma iletişim kutusu bozuk

  • tıklayın ...ve doğru JDKyola göz atın

SDK'yı Yapılandır iletişim kutusu düzeltildi

  • önbelleği temizleyelim

IntelliJ Dosya menüsü


4

Dosya -> Önbellekleri Geçersiz Kıl / Projenizi Yeniden Başlatın ve Oluşturun


3

Pom.xml dosyasına sağ tıklayın, Maven'e gidin ve Reimport'a tıklayın. Benzer bir problemim vardı ve bu benim için çalıştı.


1

Önbellekleri geçersiz kılmayı ve yeniden başlatmayı denedim, ancak benim için işe yarayan tek şey .idea dizinini tamamen silmek ve ardından sıfırdan yeni bir proje oluşturmaktı.


Bu gerçekten bir çözüm değil. Denerdim ama davamı etkilemiyor.
Tung

1

Ayrıca yeni bir java projesi oluşturmaya çalıştığımda bu hatayı birçok kez aldım.

Bu aptal sorunu nasıl yaşadığım adımı aşağıdadır.

  1. Boş bir proje oluşturun ve yeni dizin oluşturun src/main/java.
  2. Kaynak paketi oluşturun net.gongmingqm10.sketch .
  3. Proje için gradle şeyler oluşturmak için gradle wrapper, kullanın gradle idea.
  4. build.gradleDosyaya bazı bağımlılıklar ekleyin gradle buildve projeyi yeniden içe aktarın .
  5. Oluşturun User.javave School.javamevcut paketin içindenet.gongmingqm10.sketch
  6. User.java'da import School'u kullanmaya çalışırken hata aldım.
  7. Intellij, içe aktarmada sembolü çözemiyor şikayet etmeye devam ediyor.

Çözüm:

Önce projeyi oluşturun ve main / java'yı kaynak kök olarak işaretleyin. Aynı adla yeni bir dizin oluşturunnet.gongmingqm10.sketch . Tüm dosyaları eski sorunlu paketlerden yeni pakete taşıyın.

Ana neden:

Kaynak kodunun dizin ağacı

Ağaçtan da görebileceğiniz gibi. Adlı bir dizin aldım net.gongmingqm10.sketch. Ama gerçekten ihtiyacımız olan şey 3 seviyeli dizin: net-> gongmingqm10-> sketch

Ancak projemi Intellij'de oluşturmayı bitirmeden önce, adında yeni bir dizin oluşturuyorum net.gongmingqm19.sketch, bu bana şu adla gerçek bir dizin vereceknet.gongmingqm10.sketch .

İçe aktarmaya çalışırken. Açıkçası, intellij dosyayı weired dizini altında adıyla nasıl içe aktarabilir a.b.c?


Sağol dostum, bu benim sorunumdu. edit: detaylandırılıyor ... 1 maven modülünden diğerine kopyaladım ve kopya dizinleri düzleştirdi. Intellij her şeyi sıralanmış gibi görünse de, klasörüm aslında a> b> c yerine "abc" idi.
Qbert

1

@Anton Dozortsev Ben de benzer bir davranıştan deliye döndüm; IDE'yi birkaç kez yeniden yükledim, ancak IDEA uygulamasını, tüm önbellekleri, tercihleri ​​vb. Kaldırdıktan sonra sorunu aştım.

Aradaki her türlü adımı denedim (yeniden başlatma, geçersiz kılma, silme .ideave *.imldosyalar ve diğerleri gibi).

Görünüşe göre sorun IntelliJ'in idea.max.intellisense.filesizeayarlarından kaynaklanıyor. Bağımlılığımın boyutundan daha küçük olan 100KB olarak ayarladım ve IntelliJ'in bunu tıpkı ekran görüntünüzde olduğu gibi bilinmeyen olarak göstermesine neden oldum.

Düzeltme:

  1. Yardım -> Özel Özellikleri Düzenle'ye tıklayın

  2. Özelliği daha büyük bir değere ayarlayın; varsayılan 2500 KB'tır idea.max.intellisense.filesize=2500


1

Src klasörünün java yerine kök kaynak olarak işaretlendiğini fark edene kadar aynı sorunu yaşadım ! Yalnızca java'ya (src / main / java) geçerek kaynak kök olmak sorunumu çözdü görüntü açıklamasını buraya girin


1

Uzun bir aramanın ardından, bir maven projesinde makinemdeki bir bağımlılığın bir şekilde bozulduğunu keşfettim. Garip olan şey, bağımlılığın derlenmiş java kodunda hala doğru şekilde çalışıyor olmasıydı. Ancak maven bağımlılık önbelleğimi temizleyip yeniden oluşturduğumda sorun ortadan kalktı ve IntelliJ paketi tanıdı. Bunu çalıştırarak yapabilirsiniz:

mvn dependency:purge-local-repository

İlginçtir ki, sorunumun kaynağı IntelliJ değil, kendisini kurcaladı.


1

Lütfen Dosya-> Senkronize Et'i deneyin. Geçersiz kılmadan önce IntelliJ'i kapatıp yeniden açın.

Yeniden başlattıktan sonra. Geçersiz kılardım ancak senkronizasyon yeniden başlattıktan sonra her şeyi temizledi.


0

Basit Yeniden Başlatma benim için çalıştı.

Önce yeniden başlatmayı denemenizi öneririm ve ardından önbelleği geçersiz kılmayı tercih edebilirsiniz.

Not: Sistem önbelleklerini temizlemek, yerel geçmişin temizlenmesiyle sonuçlanacaktır.


0

İçe aktarılan Maven projemle benzer bir sorun yaşadım. Bir modülde, diğer modülün bir kısmı için içe aktarmada sembolü çözemez (evet, bu modülün bir kısmı çözülebilir).

"Maven ana dizinini" daha yeni bir sürümle değiştirdim, sorunumu çözdüm.

Güncelleme: 1 saat için iyi, bozuk duruma dönüyor ...


0

Nedeni buldum!

Benim durumumda, bazı java kaynak dosyası içeren bir jar dosyası ekliyorum, ancak java kaynağının kötü olduğunu düşünüyorum, Intellij Idea bağımlılık kitaplığında kaynağı otomatik olarak ekliyor, bu nedenle Editör'de içe aktarma KÖTÜ , SADECE kaynak kodunu kaldırın " Proje Yapısı "->" Kitaplık ", benim için çalışıyor.


0

Benim için yaptığım şey, yanlışlıkla bu jar kitaplığına kaynakları ekledim ve android, b / m resim kitaplığı hatasında işaretlendiği gibi kaynaklar satırını silerek çözemediğinden .idea klasöründeki paket dosyasını düzenlemek oldu .

Ardından derecelendirmeyi yeniden oluşturun ve bam sorunu çözüldü.


0

Aynı sorunu yaşadım ve bunun nedeni projenin kaynaklarının yanlış işaretlenmesiydi.

Kök İçeriği manuel olarak oluşturdum ve bu src/main/testklasörün Sourcesyerine olarak işaretlendiğini fark etmedim Tests. Bu yüzden test sınıflarımın tüm test kitaplıklarına sahip olduğu varsayıldı ( JUnit,Mockito derlenmesi kapsamında değil Testi ile, vs.).

src/main/testTestler olarak işaretleyip modülü yeniden kurar kurmaz tüm hatalar ortadan kalktı.


0

NiFi üzerinde çalışmak için Intellij'i kullanmaya çalışırken bunu son zamanlarda yaşadım, sorunun NiFi'nin Maven> = 3.1.0 gerektirmesi ve kontrol ettiğim sürümün (sanırım varsayılanım) 3.0.5 olduğu ortaya çıktı. Proje için Maven sürümünü güncellemek sorunu çözdü, bu nedenle bazı durumlarda Maven sürüm yanlış hizalaması bakılması gereken bir şey olabilir ... Sanırım oldukça sıra dışı ama iş parçacığına bu kadar yaklaşırsanız muhtemelen bir sıradışı sorun :)


0

Aynı problem. Bu yöntemler işe yaramazsa. lib'i yerel maven deposundan silmeyi ve pom'a yeniden içe aktarmayı deneyebilirsiniz.

mvn deposu

Sonunda benim için iyi.

proje


0

file-> Project Structure-> Modules, sorunlu modülü bulun, tıklayın ve Dependenciessağ taraftaki sekmeyi seçin . Yeşil artı işaretine tıklayın, soruna neden olan kavanoz veya kitaplıkları eklemeyi deneyin. Bu benim için çalışıyor.


0

Yukarıda denediğim hiçbir şey benim için işe yaramadı (her öneriyi denediğimden değil). Sonunda püf noktası sınıfı yeniden adlandırmaktı - sınıf adına ve dosya adına 2 ekledim. Sonra tüm referansları manuel olarak çözdüm. (Tanınmadıkları için yeniden düzenleme referansları otomatik olarak değiştirmedi.)

"2-sürüm" her yerde mutlu bir şekilde çözüldüğünde, 2'yi sınıftan ve dosyadan yeniden düzenleyip kaldırabildim ve o zaman her şey olması gerektiği gibiydi.


0

benim durumumda çözüm, maven projesi olarak içe aktardığım gerçeğinin yanı sıra projeyi maven projesi olarak eklemekti: P

pom.xml'e gidin -> sağ tıklayın -> maven projesi olarak ekleyin


0

Intelli iDEA bu ​​aptal sorunlara @ kez neden olur. Basit goto pom.xml, sağ tıklayın ve yapın -> Maven -> Yeniden içe aktarın.

Bu sorunu çözmelidir.


0

2020.1.4 Ultimate sürümü için aşağıdakileri yapmam gerekiyordu

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

Benim için sorun, kütüphanelerin mvn -U clean installterminalden doldurulmamasıydı .

görüntü açıklamasını buraya girin


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.