Eclipse / Android:“ ข้อผิดพลาดในการเรียกใช้ตัวสร้าง 'Android Pre Compiler' ในโครงการ ... ”


97

พยายามทำงานบางอย่างในโครงการ Android ฉันไม่ได้ทำงานมาสองสามเดือนแล้ว แต่ทุกครั้งที่พยายามสร้างโครงการ Eclipse จะมีกล่องโต้ตอบขึ้นมาว่า:

'Building workspace' has encountered a problem

Errors occurred during the build.
Errors running builder 'Android Pre Compiler' on project 'XXX'
java.lang.NullPointerException

ฉันใช้ Eclipse บน Mac พร้อมกับโครงการสร้าง Android เป้าหมาย 4.0.3 (API ระดับ 15) และฉันติดตั้งเวอร์ชันต่อไปนี้แล้ว

  • คราส - 3.7.2
  • เครื่องมือพัฒนา Android - 21.0.1
  • Android SDK - สูงสุด 17

ฉันได้ลองทำบางอย่างแล้วเช่นเริ่มพื้นที่ทำงานใหม่ทั้งหมดติดตั้ง 'Subversive SVN JDT Ignore Extensions' อัปเกรดทุกอย่างตรวจสอบให้แน่ใจว่าฉันไม่มีไฟล์ที่ไม่มีนามสกุลในโฟลเดอร์ต้นทาง (หรือที่อื่น ๆ ) ตรวจสอบให้แน่ใจว่าคอมไพเลอร์ Java ของฉันคือ 1.6 และปิดและเปิดอีกครั้ง

แก้ไข

นี่คือการติดตามสแต็กจากบันทึกข้อผิดพลาด Eclipse สำหรับปัญหานี้:

java.lang.NullPointerException
at com.android.ide.eclipse.adt.internal.build.builders.PreCompilerBuilder.build(PreCompilerBuilder.java:673)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513)
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:432)
at org.eclipse.ui.actions.BuildAction$1.runInWorkspace(BuildAction.java:305)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

และข้อมูลเซสชัน:

eclipse.buildId = M20120208-0800
java.version = 1.6.0_37
java.vendor = Apple Inc.
ค่าคงที่ BootLoader: OS = macosx, ARCH = x86_64, WS = โกโก้, NL = en_US
อาร์กิวเมนต์กรอบ: -keyring /Users/onemick/.eclipse_keyring -showlocation
อาร์กิวเมนต์บรรทัดคำสั่ง: -os macosx -ws โกโก้ -arch x86_64 -data / Projects / _EclipseWorkspace -keyring /Users/onemick/.eclipse_keyring -showlocation

แก้ไขอีกครั้ง

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

ฉันยินดีด้วยซ้ำถ้ามีคนอธิบายได้ว่าข้อผิดพลาดนี้หมายถึงอะไรและฉันจะได้รับข้อมูลการแก้ไขข้อบกพร่องเพิ่มเติมเกี่ยวกับข้อผิดพลาดพื้นฐานได้อย่างไร


1
เป้าหมายการสร้างโครงการของคุณคืออะไร?
Padma Kumar

Android 4.0.3 (API ระดับ 15)
Mick Byrne


ใช่ฉันลองใช้วิธีแก้ปัญหาต่างๆทั้งหมดที่แนะนำในปัญหานี้ แต่ไม่มีวิธีใดที่สามารถแก้ปัญหาของฉัน ฉันถามคำถามแยกต่างหากนี้เนื่องจากฉันมีปัญหา "Android Pre Compiler" เท่านั้น ฉันไม่เข้าใจด้วยซ้ำว่า 'ปัญหา' หมายถึงอะไร
Mick Byrne

คำตอบ:


108

สำหรับบรรดาของคุณที่ไม่ต้องการที่จะติดตั้งรุ่นตัวอย่างของ ADT มีวิธีแก้ปัญหาที่อธิบายไว้ที่นี่

  1. เปิดคุณสมบัติของโปรเจ็กต์ใน Eclipse จากนั้นรีซอร์ส -> ตัวกรองรีซอร์ส
  2. คลิกปุ่ม "เพิ่ม ... " -> เลือก "ไม่รวมทั้งหมด", "ไฟล์และโฟลเดอร์", "รายการย่อยทั้งหมด" ในช่องป้อนข้อความ ".svn" (ไม่มีเครื่องหมายอัญประกาศ)
  3. รีสตาร์ท Eclipse

ฉันมีปัญหาเดียวกันกับโฟลเดอร์. gitมันใช้งานได้ดี


โปรดทราบว่าคุณต้องปิดและเปิดโครงการอีกครั้งหลังจากการเปลี่ยนแปลงนี้
Tommie

โปรดทราบว่า ADT 21.1 หมดและได้รับการแก้ไขแล้วดังนั้นคุณสามารถอัปเดตเครื่องมือของคุณได้
Vadim Kotov

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

@ user1106888 บางทีคุณอาจมีโฟลเดอร์อื่นที่มีจุดอยู่ในชื่อ หรือบางไฟล์ที่ไม่มีนามสกุลก็สามารถสร้างข้อผิดพลาดนี้ได้เช่นกัน
Vadim Kotov

ปัญหาที่คล้ายกัน / ที่เกี่ยวข้อง: stackoverflow.com/questions/14188650/…
Mr-IDE

84

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

เครื่องมือ ADT เวอร์ชัน 21.0.1 มีข้อบกพร่องที่ขัดขวางการสร้างโครงการหากคุณมีไฟล์ใด ๆ ที่ไม่มีนามสกุลอยู่ในนั้น นี่เป็นปัญหาเฉพาะสำหรับผู้ใช้ (เช่นฉัน) ที่ใช้การโค่นล้มโดยมีไฟล์ที่ไม่มีนามสกุล

วิธีหนึ่งที่แนะนำคือการติดตั้งปลั๊กอิน Eclipse ที่ 'โค่นล้ม' (วิธีใช้> ติดตั้งซอฟต์แวร์ใหม่> ทำงานกับไซต์เวอร์ชัน Eclipse ของคุณ> ขยาย 'การทำงานร่วมกัน'> เลือก 'Subversive SVN JDT Ignore Extensions' และ 'Subversive SVN Team Provider') แต่สิ่งนี้ไม่ได้ ไม่ได้ผลสำหรับฉัน (ฉันใช้ Indigo บางทีอาจจะเป็น Juno ก็ได้)

วิธีแก้ปัญหาคือการติดตั้งเครื่องมือ ADT และตัวจัดการ SDK เวอร์ชันตัวอย่าง 21.1 จาก Google คำแนะนำที่ชัดเจนสามารถพบได้ที่นี่และคุณสามารถอ่านทั้งหมดพื้นหลังเพิ่มเสียงของคุณไปยังฝูงชนโกรธของนักพัฒนาที่นี่


4
วิธีนี้ช่วยแก้ปัญหาได้โปรดอัปเดตทั้ง SDK และ ADT
Michael Marsella

1
@MickByrne ขอบคุณ เห็นได้ชัดว่าฉันต้องติดตั้งช่อง "ดูตัวอย่าง" ของ ADT และ SDK เพื่อแก้ปัญหากับ Eclipse Juno ขอบคุณ.
Aleks G

3
หากหลังจากติดตั้งปลั๊กอินที่ถูกโค่นล้มแล้วปัญหาไม่หายไปให้ลองทำสิ่งนี้: ลบโปรเจ็กต์ออกจากพื้นที่ทำงานของคุณลบโฟลเดอร์ 'bin' และ 'gen' และตรวจสอบให้แน่ใจว่าไม่รวมอยู่ใน svn จากนั้นเพิ่มโปรเจ็กต์อีกครั้งใน พื้นที่ทำงาน (ไฟล์> ใหม่> โครงการโครงการ Android จากรหัสที่มีอยู่) หากตอนนี้ตั้งชื่อไม่ถูกต้องให้คลิกขวา> Refactor> Rename สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้
Glenn Schmidt

3
21.1 หมดแล้วดังนั้นคุณสามารถอัปเกรดได้หากคุณไม่ชอบดูตัวอย่าง
Xavier Ducrohet

1
มี.ค. 56 ไม่ใช่ตัวอย่างอีกต่อไป เพียงไปที่ SDK Manager และอัปเกรด
tony gil


9

ฉันก็มีปัญหาเดียวกันและฉันก็รู้ว่าฉันได้ปิดโครงการอื่นที่เกี่ยวข้องกับโครงการที่ฉันกำลังสร้าง เมื่อฉันเปิดมันทุกอย่างก็หายไป


ขอบคุณที่ได้ผลโดยสิ้นเชิง การนำเข้าโปรเจ็กต์ที่ฉันใช้เป็นไลบรารีนั้นเต็มไปด้วยข้อผิดพลาดดังนั้นฉันจึงปิดมัน (เนื่องจากฉันไม่ได้ใช้ฟังก์ชันการทำงานในขณะนั้น) ดังนั้นเนื่องจากฉันไม่ต้องการมันฉันจึงยกเลิกการเชื่อมต่อจากไลบรารีของฉัน (ผ่าน Properties -> Android -> เลือกไลบรารีจากนั้นคลิก Remove) และข้อผิดพลาดของโปรเจ็กต์เดิมก็หายไป เย้!
Azurespot

2

คุณอาจปิดไลบรารี 'appcompact_v7' เพื่อสร้างไฟล์ใหม่ สิ่งนี้แก้ปัญหาของฉันได้โดยเปิดกลับ


1

ฉันพบข้อผิดพลาดนี้และลบไฟล์. svn ทั้งหมดโครงการของฉันไม่สามารถทำงานได้เมื่อกระบวนการ 55%

และฉันพบว่านี่เป็น res dir ที่ว่างเปล่าในโครงการของฉันฉันไม่รู้ว่ามันทำงานอย่างไร แต่เมื่อลบ res dir ที่ว่างเปล่าโปรเจ็กต์ของฉันก็ทำงานได้

ดังนั้นคุณควรตรวจสอบไฟล์ทั้งหมดในโครงการของคุณ


1

ฉันก็ประสบปัญหาเดียวกันและเสียเวลาในการแก้ไขปัญหานี้เป็นจำนวนมากและวิธีแก้ปัญหาที่ระบุข้างต้นก็ไม่ได้ผลสำหรับฉัน ฉันแก้ไขปัญหานี้โดยไปที่ Eclipse -> Help -> ตรวจสอบการอัปเดตจากนั้นรีสตาร์ท eclipse หลังจากอัปเดตเสร็จสิ้น


1

หากคุณปิดโปรเจ็กต์ไลบรารีที่จำเป็นสำหรับการรันโปรเจ็กต์ของคุณโดยไม่ได้ตั้งใจให้เปิดโปรเจ็กต์ในคราส ข้อผิดพลาดนี้จะต้องหายไป


0

อีกกรณีหนึ่ง: ฉันปิดโปรเจ็กต์ปัจจุบัน (พร้อมกับข้อความแสดงข้อผิดพลาด) ทิ้งที่เก็บ SVN ที่ใช้งานคอมไพล์ใหม่:

ข้อผิดพลาดในการสร้าง

ฉันเพิ่มตำแหน่งที่เก็บ:

ตึกโอเค!



-1

ฉันพบปัญหานี้เมื่อเร็ว ๆ นี้และวิธีแก้ไขที่ระบุข้างต้นไม่ได้ผลสำหรับฉัน ฉันไม่มีไฟล์ใด ๆ ที่ไม่มีนามสกุล มันเกิดขึ้นหลังจากเพิ่มโปรเจ็กต์ใหม่จากโค้ดที่มีอยู่มีข้อผิดพลาดในการตั้งค่าที่ดูเหมือนจะทำให้สถานะของคราสสับสน หลังจากนั้นโปรเจ็กต์ใด ๆ ในพื้นที่ทำงานที่ฉันพยายามล้างหรือสร้างก็ทำให้เกิดข้อผิดพลาด Android Pre-Compiler กับ java.lang.NullPointerException

ฉันพบว่าไฟล์ main.xml ในไดเร็กทอรี / res นั้นไม่พบด้วยเหตุผลบางประการแม้ว่าไฟล์จะอยู่ที่นั่นมากก็ตาม วิธีแก้ไขคือปิดมุมมองไฟล์ที่เปิดอยู่ทั้งหมดใน Eclipse Java Edit Panel ปิดโปรเจ็กต์ทั้งหมดจากนั้นเปิดโปรเจ็กต์และเปิดไฟล์ xml หลัก หลังจากที่ฉันทำเช่นนั้นปัญหา Pre-Compiler ก็หายไป

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