การรับ“ ไม่พบสัญลักษณ์” ในโปรเจ็กต์ Java ใน Intellij


99

GameManager.javaฉันโทรนี้ให้เช่นเดี่ยวคงที่จากชั้นเรียน

HUD.getInstance().update(timeDelta);

HUD.javaมีHUDระดับเช่นเดียวกับสองชั้นเรียนอื่น ๆ ที่เกี่ยวข้องและHUDTextElement HUDElementคลาสทั้งหมดอยู่ในรูทพา ธ../src/org/mypackageเดียวกัน

อย่างไรก็ตามเมื่อรวบรวมโปรเจ็กต์ java นี้ใน IntelliJ ฉันไม่พบ Symbol HUDในบรรทัดที่ฉันHUD.getInstance()โทร

รหัสเดียวกันนี้รวบรวมได้ดีใน eclipse มีความคิดอย่างไรว่าปัญหาคืออะไร


1
คุณมีคลาส HUD ที่นำเข้าทั้งสองอย่างหรือไม่
Alex Coleman

นี่เป็นทางออกเดียวสำหรับปัญหานี้ซึ่งใช้ได้กับฉันstackoverflow.com/a/56473166/8660553
Sahil SInghal

คำตอบ:


172

เลือกสร้าง -> สร้างโครงการใหม่จะแก้ปัญหาได้


20
หมายเหตุสำหรับ noobs ที่สมบูรณ์สำหรับ Java / IntelliJ: ด้านบนแตกต่างจาก "Build Project"
hiljusti

4
@ จัสตินฮิลล์ - ฉันมีความเชี่ยวชาญกับคราสและยังใหม่กับ IntelliJ คุณสามารถช่วยฉันเกี่ยวกับความแตกต่างระหว่างสองจุดและจุด / ลิงก์ใด ๆ ที่ช่วยให้ฉันใช้เวลากับ IntellJ ได้อย่างเต็มที่
nanosoft

1
ฉันอาจเป็นทรัพยากรที่แย่กว่าการค้นหาโดย Google ฉันไม่ได้ใช้ Eclipse ความคิดเห็นของฉันมีเพียงว่า "สร้างโครงการใหม่" และ "โครงการสร้าง" เป็นตัวเลือกที่แตกต่างกัน (ฉันกำลังช่วยคนที่เจอสิ่งนี้และพวกเขาไม่สังเกตเห็นความแตกต่างระหว่างตัวเลือก)
hiljusti

1
ทำไมถึงได้ผล? การทำให้แคชไม่ถูกต้องและการรีสตาร์ทไม่ได้ผล

ได้ผล .... พยายามเรียกใช้ "maven clean compile" แต่ไม่สามารถแก้ปัญหาได้
Omtara

54

ฉันมีปัญหาเดียวกันและปรากฎว่าฉันไม่เคยรวบรวมโครงการใหม่ทั้งหมด ดังนั้นการคลิกขวาและเลือก Compile '' (shift-cmd-F9 บน mac) แก้ไข ดูเหมือนว่าคอมไพล์ในบันทึกจะไม่ 'เห็น' ไฟล์ที่ไม่ได้คอมไพล์

การทำเครื่องหมายโฟลเดอร์ src เป็นแหล่งที่มาไม่ได้ช่วยในกรณีของฉัน


45

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยคลิกไฟล์> ไม่ถูกต้องแคช / รีสตาร์ท


1
ระวัง - หากคุณมีการเปลี่ยนแปลงใด ๆ และไม่มีความมุ่งมั่นการเปลี่ยนแปลงเหล่านั้นจะสูญหายไป :)
Nikola

6
การไม่ตรวจสอบแคชจะไม่ทำให้การเปลี่ยนแปลงสูญหาย ฉันไม่แน่ใจด้วยซ้ำว่าจะได้ผลอย่างไร หากคุณบันทึกไฟล์ไฟล์นั้นจะถูกบันทึกโดยไม่คำนึงถึงการแคช IntelliJ หรือการคอมมิตกับที่เก็บ
Christopher Schneider

ช่วยชีวิตฉันขอบคุณ
Jadson Santos

29

ซึ่งน่าจะเป็นโฟลเดอร์ ../src ของคุณไม่ได้ถูกทำเครื่องหมายเป็นโฟลเดอร์ "แหล่งที่มา" ใน Intellij IDEA ดังนั้นจึงไม่ทราบว่าควรมองหาชั้นเรียนของคุณที่นั่น คุณสามารถคลิกขวาที่โฟลเดอร์ใน project explorer และเลือก "mark as source folder" เพื่อแก้ไขปัญหานี้


1 เป็นความเป็นไปได้ แต่ 2 จะไม่ให้ข้อผิดพลาดกับเขาว่าไม่พบ HUD แต่มีข้อผิดพลาดที่บอกว่าไม่มีเมธอด getInstance / update?
Alex Coleman

ตัวเลือกนี้ดูเหมือนจะหายไป
clankill3r

ไม่มันเปลี่ยนเป็นตัวเลือกป๊อปอัป: "ทำเครื่องหมายไดเรกทอรีเป็น>"
Dracontis

src ของฉันมีโฟลเดอร์ทดสอบอยู่ภายในและหลายโมดูลหลังจากทำเครื่องหมายเป็น Source Root ปัญหาของฉันแย่ที่สุด
Se Song

สำหรับฉันนี่ใกล้เคียงกับคำตอบที่ถูกต้อง รูทต้นทางของฉันถูกทำเครื่องหมายแล้ว แต่ฉันต้อง "Unmark as Sources Root" จากนั้นทำเครื่องหมายเป็น Sources root อีกครั้งเพื่อแก้ไขข้อผิดพลาด
yanni

26

ผมได้รับเหมือนกัน "ไม่สามารถหาสัญลักษณ์" Build -> Make Projectข้อผิดพลาดเมื่อฉันได้ ฉันแก้ไขสิ่งนี้โดยการลบ/targetโฟลเดอร์Maven ของฉันคลิกขวาที่โมดูลโครงการของฉันแล้วทำMaven -> ReimportและทำBuild -> Rebuild Projectและทำนี่คือ IntelliJ Idea 13.1.5

มันกลายMaven -> Reimportเป็นกุญแจสำคัญเนื่องจากปัญหาเกิดขึ้นอีกสองสามครั้งก่อนที่ฉันจะทำเช่นนั้นในที่สุด


12

ขอบคุณสำหรับความช่วยเหลือจนถึงตอนนี้การแก้ไขคือการคอมไพล์ HUD.java ก่อน (คลิกขวาที่ไฟล์ -> คอมไพล์ HUD.java) หลังจากรวบรวมไฟล์ java แล้วสามารถคอมไพล์โครงการที่เหลือได้โดยไม่มีปัญหาใด ๆ

ฉันไม่รู้จริงๆว่าทำไมมันถึงได้รับการแก้ไขหรือทำไม IntelliJ ไม่ทำสิ่งนี้โดยอัตโนมัติ แต่ดูเหมือนว่าข้อผิดพลาดของรูทจะเกี่ยวข้องกับ IntelliJ ที่จัดการกับหลายคลาสในไฟล์. java เดียวไม่ถูกต้อง


1
IntelliJ สามารถจัดการหลายคลาสในไฟล์เดียวได้ดีเพียงแค่ต้องแน่ใจว่าไฟล์นั้นถูกคอมไพล์แล้วในบางจุด
Makoto

ใช่ยกเว้นว่าฉันเพิ่งมีปัญหาเดียวกันกับไฟล์คลาสเดียว ผิดปกติพอมันเคยทำงานที่เหมาะสมเพียงแค่ปรับก่อนที่ผมจะวิ่งคำสั่ง Maven mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpathนี้: หมายถึงการย้าย javafx jar จากไดเร็กทอรี libs ไปยังไดเร็กทอรี ext สำหรับ JDK ปัจจุบัน ผมพบว่ามันนี่
นิฮิลอน

7

ฉันต้องคลิกขวาที่โปรเจ็กต์แล้วเลือก "Reimport" ภายใต้เมนูย่อย "Run Maven"


6

สำหรับฉัน - ฉันลองทำตามขั้นตอนเหล่านี้แล้ว (Invalidate Cache & Restart, Maven Reimport)) แต่ไม่ได้ผล ดังนั้นผมจึงลบ.idea, .settingsและ.projectโฟลเดอร์และพยายาม - มันทำงาน


3
การลบ.ideaโฟลเดอร์ทำเพื่อฉัน
Daniel D.

5

ฉันใช้ maven ในโครงการของฉัน ด้วยเหตุผลบางอย่าง IntelliJ ให้ข้อผิดพลาดเกี่ยวกับ wierd เหล่านี้แก่ฉัน ฉันรัน mvn สะอาดและลองซิงค์ใหม่และข้อผิดพลาดเหล่านี้หายไป


1
ความสะอาดเป็นวงจรชีวิตของ maven คุณใช้มันหากคุณต้องการล้างไฟล์เอาต์พุตทั้งหมดที่สร้างโดยโครงการ maven
Moiz Raja

4

สิ่งนี้เกิดขึ้นกับฉันเมื่อฉันลบโฟลเดอร์แล้วคัดลอกวางกลับไปที่โปรเจ็กต์

Right-click project folder -> Rebuild ทำงานให้ฉัน


3

ฉันประสบปัญหาเดียวกันและมีวิธีแก้ปัญหามากมายในคำตอบการลองใช้วิธีแก้ปัญหาเหล่านี้ทำให้ฉันใช้เวลาพอสมควรดังนั้นที่นี่ฉันต้องการเสนอแนวทางที่เป็นระเบียบหากคุณได้รับข้อผิดพลาดนี้

ตรวจสอบสิ่งต่อไปนี้สร้าง / อัปเดตหากมีบางอย่างขาดหายไป

  1. โฟลเดอร์ src ถูกทำเครื่องหมายเป็นโฟลเดอร์ต้นทาง
  2. ไฟล์. img มีอยู่
  3. เปิดใช้งานการประมวลผลคำอธิบายประกอบ
  4. หากคุณเพิ่งใช้ @UtilityClass ก็อาจเป็นสาเหตุได้เช่นกันBug Link

หากทุกอย่างเรียบร้อยดีคุณสามารถลองทำตามวิธีแก้ปัญหาตามลำดับที่กำหนด

  1. คอมไพล์ไฟล์ / โมดูลใหม่

  2. หากไม่สามารถแก้ไขปัญหาได้ให้ลองรีเฟรชการพึ่งพา maven และสร้างโครงการโดยใช้Maven -> ReimportและBuild -> Rebuild Project

  3. ลอง mvn clean install -DskipTests

  4. ลองทำให้แคช IntelliJ เป็นโมฆะและรีสตาร์ท IDE โดยใช้ File > Invalidate caches/ restart

  5. ลบโฟลเดอร์ .idea และนำเข้าโครงการอีกครั้ง

เครดิตและขอบคุณทุกคนที่ตอบคำถามนี้คุณสามารถอ้างอิงคำตอบของพวกเขาสำหรับคำอธิบายเพิ่มเติมเกี่ยวกับแต่ละประเด็น


1
ใช้งานได้: ลองทำให้แคช IntelliJ เป็นโมฆะและรีสตาร์ท IDE โดยใช้ File> Invalidate caches / restart
พลังงาน

2

ฉันรู้ว่านี่เป็นคำถามเก่า แต่จากประสบการณ์ล่าสุดของฉันสิ่งนี้เกิดขึ้นเนื่องจากทรัพยากรในการสร้างถูกลบหรือ Idea ไม่สามารถจดจำได้ว่าเป็นแหล่งที่มา

เมื่อใดก็ตามที่ข้อผิดพลาดปรากฏขึ้นให้ระบุแหล่งที่มาสำหรับโฟลเดอร์ / ไดเร็กทอรีและข้อผิดพลาดนี้ต้องได้รับการแก้ไข

บางครั้งแม้ว่าเราจะกำหนดซอร์สสำหรับทั้งโฟลเดอร์ แต่แต่ละคลาสก็อาจยังไม่พร้อมใช้งาน สำหรับผู้ใช้มือใหม่วิธีแก้ปัญหาง่ายๆคือการนำเข้าสำเนาใหม่และสร้างแอปพลิเคชันอีกครั้งเพื่อให้พร้อมใช้งาน

ขอแนะนำให้ทำการติดตั้งใหม่ทั้งหมดหลังจากนี้



2

ฉันรู้ว่าเธรดนี้เก่า แต่อีกวิธีหนึ่งคือการเรียกใช้

$ mvn clean install -Dmaven.test.skip=true

และใน IntelliJ ให้ทำ CMD + Shift + A (mac os) -> พิมพ์ "Reimport all Maven projects"

หากไม่ได้ผลให้ลองบังคับให้ดาวน์โหลดการอ้างอิง maven ใหม่

$ mvn clean -U install -Dmaven.test.skip=true

ในกรณีของฉันมีคลาสที่สร้างขึ้นโดยอัตโนมัติ (ตามไฟล์ XML) ที่ส่วนอื่น ๆ ของโค้ดอ้างอิง ในขณะที่การสร้างด้วย maven ใช้งานได้หากไม่ได้รับการmvn installแก้ไข IntelliJ ไม่เห็นการอ้างอิงเหล่านั้นและทำให้สภาพแวดล้อมการรันล้มเหลว
tokosh

2

สำหรับฉันคือปัญหากับลอมบอกเพราะต้องเปิดใช้งานการประมวลผลคำอธิบายประกอบ คุณจะพบช่องทำเครื่องหมายนี้บนSettings > Build > Compiler > Annotation Processors


ขอบคุณ! สิ่งนี้แก้ไขให้ฉัน
nyarasha

1

สำหรับกรณีของฉันปัญหาเกิดจากการใช้คุณลักษณะการทดลองของ Lombok @UtilityClass ในโครงการ java ของฉันใน Intellij Idea เพื่อใส่คำอธิบายประกอบเมธอดคลาสเป็น "คงที่" เมื่อฉันทำให้แต่ละเมธอดของคลาสเป็น "คงที่" อย่างชัดเจนแทนที่จะใช้คำอธิบายประกอบปัญหาการคอมไพล์ทั้งหมดก็หายไป


0

เนื่องจากนี่เป็น Hit แรกใน Google ที่ค้นหาข้อผิดพลาด "intelliJ ไม่พบสัญลักษณ์" ฉันก็จะใช้วิธีแก้ปัญหาของฉันเช่นกัน

ปัญหาสำหรับฉันคือโปรเจ็กต์ของฉันมาจาก Eclipse และบางไฟล์มีการพึ่งพาคลาสที่สร้างขึ้นใน src/generated-sourcesโดยข้อกำหนดใน pom.xml ด้วยเหตุผลบางประการสิ่งนี้ไม่ได้รับการดำเนินการอย่างถูกต้องเมื่อฉันเปิดโปรเจ็กต์ครั้งแรกและการสร้างใหม่ / การนำเข้าใหม่ไม่ได้ช่วยดังนั้นไฟล์จึงไม่ถูกสร้างขึ้น

วิธีแก้ปัญหาคือคลิกขวาที่โมดูลและเลือกMaven -> Generate Sources and Update Foldersที่แก้ไขปัญหาและฉันสามารถรวบรวมได้


0

ตรวจสอบให้แน่ใจว่าซอร์สไฟล์ของคลาส java ที่คุณพยายามอ้างถึงมี.javaนามสกุล มันเป็น.ajในกรณีของฉัน (ฉันจะต้องมีการตี "สร้างด้าน" แทน "สร้างคลาส" เมื่อสร้างได้) IntelliJ แสดงไอคอนเดียวกันสำหรับไฟล์นี้สำหรับคลาส "ปกติ" แต่คอมไพเลอร์ไม่เห็นเมื่อสร้าง

การเปลี่ยน.ajเพื่อ.javaแก้ไขในกรณีของฉัน



0

ฉันประสบปัญหาเดียวกันยกเว้นว่าฉันกำลังนำเข้าคลาสที่การอ้างอิงไม่สามารถแก้ไขได้ ฉันรีเฟรชโครงการ maven สร้างโครงการใหม่ ก็ยังไม่สามารถแก้ไขได้ ดูเหมือนว่า IntelliJ กำลังแคชบางอย่างไม่ถูกต้อง ฉันรีสตาร์ท IntelliJ และแก้ไขการอ้างอิง ฉันเดาว่ามันล้างแคชอย่างใด


0

หากคุณใช้ Lombok ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งานการประมวลผลคำอธิบายประกอบ


0

ฉันเห็นคำตอบมากมายที่เสนอการสร้างหรือการสร้างใหม่ แต่ในกรณีนี้ไม่สามารถแก้ไขปัญหาของคุณได้โปรดสังเกตว่า IDEA สามารถตรวจพบวิธีการได้ แต่จะไม่รวบรวมในกรณีที่คุณมีnewมาก่อนอย่างที่จะเป็น คาดหวังอินสแตนซ์

ป้อนคำอธิบายภาพที่นี่


0

ในกรณีของฉันฉันมีปัญหาในการค้นหาคลาสจากโมดูลอื่น ในpom.xmlฉันเพิ่งมีการพึ่งพานี้กับการ<scope>compile</scope>ระบุ การลบบรรทัดนี้ช่วยได้


-1

ฉันรู้ว่านี่เก่า แต่สำหรับคนอื่นตรวจสอบให้แน่ใจว่าคลาสที่หายไปนั้นอยู่ในแพ็คเกจเดียวกับคลาสที่คุณได้รับข้อผิดพลาด / ที่ที่คุณโทรมา


โหวตลงเนื่องจากสามารถนำเข้าคลาสจากแพ็คเกจอื่นได้ โดยทั่วไปคลาสเป้าหมายจะต้องถูกอิมพอร์ตและอยู่ในคลาสพา ธ เมื่อใช้ Maven ต้องตั้งค่าการอ้างอิงให้ถูกต้อง
fxnn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.