การพัฒนาสำหรับ Android ใน Eclipse: R.java ไม่ได้สร้างใหม่


309

ฉันพบว่า R.java ของฉันไม่เคยอัปเดตดังนั้นจึงไม่มีข้อมูลเกี่ยวกับแหล่งข้อมูลใหม่ของฉันดังนั้นฉันจึงตัดสินใจลบและคิดว่า Eclipse จะสร้างแหล่งข้อมูลใหม่ แต่นั่นไม่ได้เกิดขึ้นและตอนนี้ฉันไม่มีอาร์จาว่า ฉันจะสร้างใหม่ได้อย่างไร

ฉันใช้ Windows 7

จากหนึ่งในความคิดเห็น: "การทำโปรเจค -> คลีนคือสิ่งที่ทำให้เกิดปัญหาสำหรับฉันการลบอาร์จาวาลบ ... และไม่ว่าด้วยเหตุผลใดก็ตาม


โซลูชันของฉันเมื่อการทำความสะอาดใช้งานไม่ได้: ฉันจำเป็นต้องดาวน์โหลดเครื่องมือสร้างในตัวจัดการ SDK แล้วเริ่มระบบใหม่ ฉันมี ADT 22.3.0
Moradnejad

คำตอบ:


177

ไซต์นี้แนะนำ:

หากคุณเรียกใช้ clean บนโปรเจ็กต์ควรสร้างไฟล์ Java ทั้งหมดที่สร้างใหม่นั่นคือ R

...และ...

ใน Eclipse ภายใต้เมนูโครงการคือตัวเลือกการสร้างโดยอัตโนมัติ ที่จะช่วยคุณสร้างไฟล์ R.java ทุกครั้งที่มีการแก้ไข ตัวเลือก Clean ... ยังอยู่ภายใต้โครงการ

ไซต์นี้แนะนำวิธีแก้ไขปัญหาอื่น


1
ใครจะมีความคิดขอบคุณพวก +1 ที่นี่ฉันมีปัญหากับเลย์เอาต์ของฉันดังนั้น R.Java จึงไม่ถูกสร้างขึ้น หัวขึ้น! ไชโย

101
การทำโปรเจค -> ทำความสะอาดคือสิ่งที่ทำให้เกิดปัญหากับฉัน การล้างลบ R.java ... และด้วยเหตุผลใดก็ตามที่ปลั๊กอินไม่ได้สร้างไฟล์ใหม่
Cerin

7
ฉันมีป๊อปอัปนี้เมื่อฉันเชื่อมโยงกับห้องสมุดที่ต้องใช้ Android API รุ่นอื่นที่ไม่ใช่รุ่นที่ฉันติดตั้งไว้ การอ้างอิงไม่ทำงานและ R ของฉันไม่ได้ถูกสร้างขึ้นหลังจากนั้น ดังที่คนอื่น ๆ บอกไว้มันจะปรากฏในบันทึกข้อผิดพลาดดังนั้นตรวจสอบที่นั่น
mikebabcock

1
ในกรณีของฉันการทำความสะอาดโครงการเพิ่งลบออก R.javaไปแทนที่จะสร้างใหม่ stackoverflow.com/questions/13065425/…
RobinJ

96
R.java ไม่สร้างใหม่หากคุณมีข้อผิดพลาดบางอย่างในไดเรกทอรี res ข้อผิดพลาดที่ถูกลบ -> แก้ไขปัญหาในกรณีของฉัน :)
JavaRunner

300

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

สารละลาย

  • ตรวจสอบให้แน่ใจว่าทุกสิ่งที่R.ลิงก์ไปยังไม่เสียหาย แก้ไขข้อผิดพลาดทั้งหมดในไฟล์ XML ของคุณ หากสิ่งใดใน ADK ถูกทำลายRจะไม่งอกใหม่
  • หากคุณอย่างใดตีและสิ่งที่สร้างขึ้นimport android.Rในกิจกรรมของคุณเอามันออกไป
  • เรียกใช้โครงการ -> ทำความสะอาด สิ่งนี้จะลบและสร้าง R และ BuildConfig ใหม่
  • ตรวจสอบให้แน่ใจว่าโครงการ -> สร้างโดยอัตโนมัติถูกเลือก Menu -> Project -> Build Projectถ้าไม่สร้างมันด้วยตนเองผ่านทาง
  • รอสักครู่เพื่อให้ข้อผิดพลาดหายไป
  • หากไม่ได้ผลให้ลบทุกอย่างที่อยู่ใน / gen / โฟลเดอร์
  • หากยังใช้งานไม่ได้ให้ลองคลิกขวาที่โครงการของคุณ -> เครื่องมือ Android -> แก้ไขคุณสมบัติโครงการแก้ไขคุณสมบัติของโครงการ
  • ตรวจสอบ* .propertiesของคุณไฟล์ (ในโฟลเดอร์รูทของโฟลเดอร์แอพของคุณ) และตรวจสอบให้แน่ใจว่าลิงก์ในนั้นไม่เสีย
  • คลิกขวาของคุณโครงการ> คุณสมบัติ> Android ดูที่ส่วนเป้าหมายการสร้างโครงการและห้องสมุดทางด้านขวาของหน้า Build Build ของคุณควรตรงกับเป้าหมายใน AndroidManifest.xml ของคุณ ดังนั้นหากตั้งค่าเป็นเป้าหมาย 17 ใน AndroidManifest ตรวจสอบให้แน่ใจว่าชื่อเป้าหมายเป็น Android 4.2 หาก Library ของคุณมี X ภายใต้ข้อมูลอ้างอิงให้ลบและเพิ่มไลบรารีอีกครั้งจนกว่าจะมีเครื่องหมายถูกสีเขียว สิ่งนี้อาจเกิดขึ้นหากคุณย้ายไฟล์และโฟลเดอร์ไปสองสามไฟล์

จะทำอย่างไรถ้า R ไม่งอกใหม่

สิ่งนี้มักจะเกิดขึ้นเมื่อคุณมีไฟล์ XML ที่ใช้งานไม่ได้

  • ตรวจสอบข้อผิดพลาดภายในไฟล์ XML ของคุณส่วนใหญ่อยู่ใน/res/โฟลเดอร์
  • สถานที่ทั่วไปคือ/layout/และ/values/โดยเฉพาะอย่างยิ่งหากคุณเพิ่งเปลี่ยนสถานที่แห่งหนึ่ง
  • AndroidManifest.xmlตรวจสอบ ฉันพบว่าฉันมักจะเปลี่ยนสตริงและลืมที่จะเปลี่ยนชื่อสตริงจากAndroidManifest.xmlผมพบว่ามักจะเปลี่ยนสตริงและลืมที่จะเปลี่ยนชื่อจากสตริง
  • ตรวจสอบว่าAndroid SDK Build-toolsติดตั้งแล้ว หน้าต่าง -> ตัวจัดการ SDK ของ Android -> เครื่องมือ -> เครื่องมือสร้าง SDK ของ Android
  • ให้แน่ใจว่าเมื่อคุณอัปเดตAndroid SDK ToolsคุณยังปรับปรุงและAndroid SDK Platform-tools Android ADK Build-toolsงานสร้างล้มเหลวอย่างเงียบ ๆ หากไม่ตรงกัน
  • หากคุณไม่สามารถหาปัญหาให้คลิกขวา / Gen / -> เรียกคืนจากประวัติศาสตร์ท้องถิ่น ... -> ติ๊ก R.java -> คลิกคืนค่า แม้ว่ามันจะไม่สามารถแก้ปัญหาได้ แต่มันก็จะกำจัดข้อผิดพลาดพิเศษเพื่อให้ค้นหาได้ง่ายขึ้น

21
นี่ควรเป็นคำตอบที่ดีที่สุด!
john.k.doe

6
ที่จริงแล้วมันทำให้ฉันรู้ว่าสภาพแวดล้อมของฉันยังคงต้องการการปรับปรุงเครื่องมือ
woodleg.as

11
Window-> Android SDK Manager-> Tools-> Android SDK Build-tools นี่เป็นวิธีแก้ปัญหาสำหรับฉัน upvoted

1
ฉันอ่านคำตอบมากมายและมีเพียงคนเดียวที่พูดถึงการตรวจสอบเครื่องมือ SDK Build ฉันปล่อยให้คราสดาวน์โหลดอย่างคร่าวๆและติดตั้งเครื่องมือ Android ทั้งหมดเมื่อมันเสนอให้ทำเช่นนั้น มันพลาดส่วนนั้นไปโดยสิ้นเชิง
Justin Aquadro

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

40

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


2
tnx ... งี่เง่าฉันคิดว่าฉันสามารถใช้ตัวพิมพ์ใหญ่ในชื่อโครงร่างของฉัน
เควิน

ทำงานให้ฉันด้วย: คอนโซลรายงานสิ่งนี้: [2010-09-22 16:19:40 - myproject] res \ drawable-ldpi \ downloadNow.png: ชื่อไฟล์ไม่ถูกต้อง: ต้องมีเพียง [a-z0-9_]
sami

1
ขอบคุณนี่เป็นปัญหาของฉัน ฉันมีไฟล์. xml ในโฟลเดอร์เลย์เอาต์ที่มีตัวพิมพ์ใหญ่และไฟล์ R.java ทั้งหมดของฉันหายไป / จะไม่สร้างขึ้นเพราะมัน วิธีเดียวที่จะรู้ว่าเป็นการตระหนักว่าอนุสัญญาการตั้งชื่อไม่อนุญาตให้มีเงินทุน ไม่มีข้อผิดพลาดถูกสร้างขึ้น
Lemmings19

1
เมื่อตั้งชื่อไฟล์หรือแอตทริบิวต์ให้ลองตั้งชื่อมันเหมือนชื่อตัวแปรใน Java R.class ใส่ทรัพยากรเช่น id, drawable, ชื่อไฟล์ xml ที่มีค่าคงที่สุดท้ายสาธารณะคงที่ดังนั้นการใส่ "-", "อักขระพิเศษ" จะนำไปสู่การหยุดการสร้าง R เนื่องจากสัญลักษณ์เหล่านั้นอาจมีวิธีการทางคณิตศาสตร์อื่น ๆ
IronBlossom

1
ใช่นี่เป็นปัญหาสำหรับฉัน ไฟล์ใน res / xml ของฉันอ้างอิงถึงไฟล์เลย์เอาต์ที่ไม่มีอยู่และเห็นได้ชัดว่าสิ่งนี้ทำให้ R.java ไม่ถูกสร้างขึ้นดังนั้นถ้าฉันเรียกใช้ Clean ซึ่งทำให้เกิด R.java ที่หายไปทำให้เกิดข้อผิดพลาดในการนำเข้าหลายร้อยรายการ ...
Cerin

28

เหตุผลหนึ่งที่ทำให้ R.class หายไปอย่างกระทันหันคือเมื่อมีข้อผิดพลาดในไฟล์ XML ของคุณ ตัวอย่างเช่นเมื่อคุณเพิ่มไฟล์ XML ด้วยตัวอักษรตัวพิมพ์ใหญ่ในชื่อเช่น myCoolLayout.xml ซึ่งไม่ได้รับอนุญาต หรือเมื่อคุณมีการอ้างอิงที่ไม่ได้ชี้ไปที่ไฟล์ที่มีอยู่ ฯลฯ


17

ใน Eclipse เพียงใช้ Project -> clean เพื่อทำความสะอาดโครงการ R.java จะถูกสร้างขึ้นใหม่โดยอัตโนมัติ

หากด้วยเหตุผลบางอย่างที่ไม่สามารถใช้งานได้: ตรวจสอบให้แน่ใจว่าไฟล์ layout.xml ของคุณไม่มีข้อผิดพลาด Eclipse ดูเหมือนจะเป็นรถบั๊กเล็กน้อยที่นี่: บางครั้งก็ไม่ทำเครื่องหมายข้อผิดพลาดภายใน XML หรือ package explorer ในกรณีดังกล่าว: ดูที่มุมมอง "คอนโซล" หรือ "ปัญหา" หลังจากใช้ "สะอาด" ข้อผิดพลาดทั้งหมดจะปรากฏขึ้นที่นั่น แก้ไขและทำความสะอาดซ้ำ

หมายเหตุ: ไม่จำเป็นต้องแก้ไขข้อผิดพลาดที่คุณได้รับเนื่องจากไฟล์ R ขาดหายไป! เพียงแก้ไขไฟล์ XML และข้อผิดพลาดอื่น ๆ ของโครงการและใช้ clean!


ตรวจสอบให้แน่ใจว่าแบบแผนการตั้งชื่อไฟล์ทรัพยากรของคุณถูกต้อง @Masi ขอบคุณสำหรับเคล็ดลับในการมองหา "คอนโซล" สำหรับข้อผิดพลาดหลังจากทำความสะอาด สิ่งนี้ช่วยฉัน
Bharath Booshan

10

แก้ไขด่วน:

ชื่อแพคเกจในความต้องการที่ประจักษ์แก่เป็นเช่นเดียวกับหนึ่งในที่/srcโฟลเดอร์ที่/genแพคเกจโฟลเดอร์จะถูกทำซ้ำโดยอัตโนมัติ

สังเกตรายละเอียด:

สังเกตชื่อของแพ็คเกจใน/genโฟลเดอร์ ในกรณีของฉันมันแตกต่างจากใน/srcโฟลเดอร์

แพ็คเกจที่อ้างอิงในรายการนั้นเป็นของ/genโฟลเดอร์

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

เนื่องจากการอ้างอิงแพคเกจในรายการที่สอดคล้องกับที่ถูกสร้างขึ้นอย่างไร้เหตุผลและที่ไม่สอดคล้องกับแพคเกจใน /srcโฟลเดอร์นี้ได้รับแจ้งให้เปลี่ยนชื่อกับpackage = "oldPackage"package = "srcFolderPackage"


9

ฉันมีปัญหาเดียวกันและในที่สุดฉันก็พบปัญหา: ใน strings.xml ฉันไม่ได้รักษาบรรทัด<string name="app_name">program-name</string>ที่มีอยู่ตามค่าเริ่มต้นเมื่อสร้างโครงการ Android ใหม่ ฉันคิดว่ามันใช้สำหรับโปรแกรม HelloWord ซึ่งเป็นโปรแกรมดั้งเดิมเท่านั้น

อย่างไรก็ตาม AndroidManifest.xml อ้างถึงค่านี้ดังนั้น:

=> ข้อผิดพลาดในการคอมไพล์
=> R.java ไม่ได้รับการอัพเดต;
=> ไม่รู้จัก ID ...


บรรทัดใน string.xml คือ "<string name =" app_name "> ชื่อของโปรแกรม </string>" ขออภัยฉันมีปัญหากับโพสต์ของฉัน
Glaux

9

Android ได้เพิ่มในเครื่องมือสร้าง SDK ADT 22 สำหรับกลไกการสร้าง คุณเพียงแค่ต้องทำตามขั้นตอนต่อไปนี้

  1. อัปเดตเครื่องมือ SDK Android
  2. อัปเดตเครื่องมือแพลตฟอร์ม Android SDK
  3. อัปเดตเครื่องมือสร้าง SDK Android
  4. เพิ่มเส้นทางของเครื่องมือสร้างของคุณไปยังตัวแปรเส้นทาง (พา ธ ไปยัง --- ไดเรกทอรีของคุณ - เส้นทาง \ android-sdk \ build-tools)

นี่จะเป็นการแก้ปัญหา


คำตอบของฉันคือสิ่งเดียวที่เกี่ยวข้องกับคำถาม ยังคงมีเพียง 3 คะแนนขึ้นไป แปลก!
Mr.India

8

หาก R.java ของคุณไม่ได้ถูกสร้างขึ้นหนึ่งในแนวทางแก้ไขคือการลบไฟล์เลย์เอาต์ชื่อ "blabla.out.xml"

หลังจากลบไฟล์นี้ลองทำความสะอาดโครงการจากเมนูโครงการ -> ทำความสะอาด


7

ในฐานะที่เป็นลักษณะทั่วไปของคำตอบ Glaux ของถ้าคุณมีใด ๆข้อผิดพลาดในresไดเรกทอรีแล้ว R.java อาจไม่สร้าง - แม้ว่าคุณจะทำความสะอาดและสร้าง แก้ไขข้อผิดพลาดเหล่านั้นก่อน

ดังตัวอย่าง: เมื่อคุณเพิ่มไฟล์รูปภาพที่มีชื่อว่า "myimage-2.jpg" ระบบจะพิจารณาข้อผิดพลาดนี้เนื่องจากชื่อไฟล์ถูก จำกัด ไว้ที่ค่าตัวอักษรและตัวเลข ทำรีเฟรชในไดเรกทอรี 'res' ของคุณหลังจากเพิ่มไฟล์ใด ๆ และดูผลลัพธ์ในหน้าต่างคอนโซลของคุณสำหรับคำเตือนชื่อไฟล์ใด ๆ


แน่นอน! สิ่งนี้เกิดขึ้นกับฉันทุกครั้งเมื่อฉันเปลี่ยนชื่อสตริงใน strings.xml ของฉัน สิ่งนี้สามารถสร้างการอ้างอิงห้อยในไฟล์เลย์เอาต์ของฉัน และนั่นขัดขวางการผลิตอาร์จาว่า น่าเสียดายที่ไม่มีวิธีการปรับโครงสร้าง XML ID อีกครั้ง
Scott Biggs

6

หากระบบปฏิบัติการของคุณเป็น Ubuntu ฉันสามารถให้คำแนะนำได้:

  1. ติดตั้งหรืออัพเกรด ia32-lib:

    sudo apt-get upgrade ia32-libs
  2. ตรวจสอบว่าคุณมีสิทธิ์ที่ถูกต้องในโฟลเดอร์ aapt:

    cd ANDROID/adt-bundle-linux-x86_64-20130522/sdk/build-tools/android-4.2.2
    chmod 777 aapt
  3. เริ่ม Eclipse:

    sudo eclipse
  4. เรียกใช้โครงการ -> ล้างใน Eclipse


ยอดเยี่ยม และมันทำให้ adb ทำงานได้ เพียงเตือนฉันฉันควรติดตั้งเมื่อติดตั้ง Ubuntu
เหยิง

วิธีการแก้ปัญหาเดียวกันนี้เป็นจริงสำหรับ Debian amd64
Markus Peröbner

คำตอบนี้stackoverflow.com/questions/19523502/...ให้คำแนะนำสด ia32-libs ไม่ได้อยู่ในระดับประถมศึกษา
Singagirl

6

คุณ 100% มีข้อผิดพลาดในไฟล์ XMLแต่การตรวจสอบ XML ไม่แสดงข้อผิดพลาดให้คุณเห็น นี่คือเหตุผลที่คุณต้องตรวจสอบไฟล์ XML ของคุณก่อน!


5

เป็นประโยชน์เสมอไปดูที่แท็บปัญหาใน Eclipse ในกรณีของฉันฉันได้รับข้อความแสดงข้อผิดพลาด" android ไม่สามารถแก้ไขเป้าหมาย 'android-8' " ที่ทำให้ R.java ถูกสร้างขึ้น ดังนั้นฉันแก้ไขเป้าหมายที่นำเข้ามาเป็นเป้าหมายที่ฉันใช้ในไฟล์default.propertiesจากนั้นฉันก็ทำคลีนผ่านโปรเจค -> คลีนและ voila! สร้าง R.java โดยอัตโนมัติ! หวังว่ามันจะช่วย!


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

4

กำลังทำความสะอาดโครงการปิด Eclipse เปิดใหม่อีกครั้งและเปิดโครงการของฉันจนทำให้ R.java ของฉันปรากฏขึ้นอีกครั้ง ... หวังว่าจะช่วยได้


ฉันยังต้องรีบูต Eclipse ก็บ่นเกี่ยวกับ aapt ที่หายไป แต่มันมีอยู่ ....
Filippo Mazza


4

R.java จะไม่ถูกสร้างขึ้นหากมีข้อผิดพลาดใด ๆ ในresโฟลเดอร์ ตัวอย่างเช่นในโฟลเดอร์ย่อย drawable มีไฟล์สองไฟล์ที่มีชื่อเหมือนกันไฟล์หนึ่งคือ icon.png และอีกไฟล์คือ icon.html

คุณสามารถเห็นข้อผิดพลาดบางอย่างในหน้าต่างบันทึกของคอนโซล Eclipse ซึ่งมีคำว่า "ไอคอนรายการทรัพยากรถูกกำหนดไว้แล้ว" หลังจากลบ icon.html คุณสามารถล้างหรือลบgenโฟลเดอร์ได้ คุณจะพบว่ามีการสร้าง R.java


4

ฉันพบว่าไฟล์ใด ๆที่มีตัวพิมพ์ใหญ่ในresโฟลเดอร์จะสร้างข้อผิดพลาดนี้ สิ่งนี้เกิดขึ้นกับฉันด้วยไฟล์PNG ที่ฉันเพิ่มและลืม


3

หลังจากอ่านโพสต์และวิดีโอ YouTube มากมายฉันพบว่าเราแต่ละคนR.javaหายไปด้วยเหตุผลที่แตกต่างกัน

นี่คือวิธีที่ฉันแก้ไขใน Eclipse:

  • สร้าง R.java ใน genโฟลเดอร์ด้วยตนเองและบันทึก
  • หลังจากนั้นไปที่โครงการและคลิก "ล้าง"

ข้อความต่อไปนี้จะปรากฏขึ้นและไฟล์ของคุณจะถูกเขียนใหม่โดยอัตโนมัติ:

R.java ถูกแก้ไขด้วยตนเอง! กำลังเปลี่ยนกลับเป็นเวอร์ชันที่สร้างขึ้น!


1
Anup .. ฉันทำอย่างนั้น /// แต่จะถูกลบออกเมื่อฉันทำความสะอาดเท่านั้น ... ปัญหายังไม่ได้รับการแก้ไขสำหรับฉัน!
ejjyrex

3

สำหรับฉันฉันได้เชื่อมโยงแอป v7 สองครั้ง อย่างไรก็ตามใน Eclipse คลิกขวาที่ชื่อโครงการใน Package Explorer หรือ Navigator ไปที่ Properties, Android และยกเลิกการทำซ้ำรายการใด ๆ ในส่วน Library คุณอาจต้องสร้าง -> ทำความสะอาดหลังจากนั้น


2

เห็นได้ชัดว่าไม่มีคำตอบสุดท้ายสำหรับเรื่องนี้ แต่นี่เป็นอีกคำตอบหนึ่งที่ฉันไม่เห็น:

ฉันเคยR.javaหายไปหลังจากที่ (พยายาม) ทีมประสานและมีไฟล์แก้ปัญหาความขัดแย้งในโครงการ (เช่นthingy.xml.mine, thingy.xml.r35ฯลฯ ) ลบ / Rแก้ไขปัญหาความขัดแย้งสร้างใหม่


2

ฉันมีปัญหานี้ ฉันลบสิ่งนี้ไปโดยบังเอิญ

xmlns:tools="http://schemas.android.com/tools"

ซึ่งเริ่มก่อให้เกิดข้อผิดพลาดในการสร้างทั่วโครงการในไฟล์ XML ของฉันเช่นเดียวกับไฟล์ Java ของฉัน ทันทีที่ฉันพิมพ์สิ่งที่ฉันลบออกไปมันจะทำงานอีกครั้ง :)


2

ตกลงดังนั้นชัดเจนว่าอาจมีสาเหตุมากมายสำหรับปัญหานี้ หากคุณใช้งานเครื่อง 64 บิต linux และคุณเพิ่งตั้งค่า ADT เป็นครั้งแรกคุณอาจพบปัญหานี้โดยที่ R ไม่ได้สร้างขึ้นโดยอัตโนมัติ ตรวจสอบแท็บคอนโซลและคุณอาจเห็นข้อผิดพลาดคล้ายกับ:

 'No such file or directory' while attempting to get adb version from '/home/patrick/code/android-sdks/platform-tools/adb'

หากเป็นกรณีนี้คุณต้องติดตั้ง ia32-libs โดยใช้สิ่งต่อไปนี้:

 sudo apt-get install ia32-libs

ดูที่นี่สำหรับรายละเอียด: ไม่พบ Android adb


2

ฉันเจอปัญหานี้สองสามครั้ง ฉันพบว่าถ้าฉันไม่ได้นำเข้าแพ็กเกจ R ผ่านชื่อแอปพลิเคชันของฉันเช่นหากแอปพลิเคชันของฉันมีชื่อแพคเกจ example.test จากนั้นฉันก็พบว่าฉันต้องนำเข้า example.test.R เพื่อเข้าถึงใด ๆ ทรัพยากร

หากสิ่งนี้ไม่ได้ถูกนำเข้าทรัพยากรที่ได้รับคืนนั้นเป็นทรัพยากรเริ่มต้นที่ไม่มีของตัวเองรวมอยู่ด้วย

ด้วยที่กล่าวว่าหากคุณพบว่าคุณได้รับรายการทรัพยากรเริ่มต้นเพียงตรวจสอบเพื่อให้แน่ใจว่าคุณกำลังนำเข้า application_package_name.R ไม่ใช่ android.R


2

ปัญหาของฉันคือappcompatมันไม่ได้อยู่ในไดเรกทอรีเดียวกับโครงการของฉัน

ฉันพบนี้เมื่อรวบรวม app ของฉันกับมด


1

ตรวจสอบให้แน่ใจว่าคุณมีปลั๊กอิน ADT เวอร์ชันล่าสุดและเปิดตัวจัดการ SDK Android เพื่ออัปเดตเครื่องมือ SDK ทั้งหมดเป็นเวอร์ชันล่าสุด ตรวจสอบการอัปเดตใน Eclipse ด้วย รุ่นที่ไม่ตรงกันทำให้เกิดปัญหากับฉัน


1

ปัญหาของฉันอยู่ในไฟล์เมนู คอมไพเลอร์ดูเหมือนจะไม่เตือนคุณหากstrings.xmlมีการอ้างอิงสตริงที่ไม่มีอยู่ในไฟล์เมนู ตรวจสอบว่าitemไฟล์ XML ในเมนูของคุณอ้างอิงสตริงใด ๆ ที่ไม่มีอยู่ในของคุณstrings.xmlหรือไม่ มักจะandroid:titleมา


1

สำหรับผมข้อผิดพลาดนี้เกิดเมื่อฉันพยายามที่จะซ้ำกันที่มีอยู่แทนการสร้างหนึ่งที่มีres/menuwizard


1

คำตอบทั้งหมดเหล่านี้ไม่สามารถใช้งานได้หากคุณใช้ Maven ทางออกสำหรับฉันคือการเพิ่ม

<genDirectory>${project.basedir}/gen</genDirectory>

ไปที่ส่วนการกำหนดค่าของ android-maven-plugin


1

ฉันพบวิธีแก้ปัญหาว่าทำไม R.class ไม่ได้ทำโดย Eclipse หลังจากทำอีกครั้ง - 2 ทำความสะอาดสร้าง ฯลฯ

ปัญหาอยู่ที่นี่ใน strings.xml:

<string name="hello">Hello World, HelloAutoComplete!</string>

<string name="app_name">HelloAutoComplete</string>

สิ่งเหล่านี้เป็นค่าเริ่มต้นที่สร้างโดย Eclipse เมื่อคุณสร้างโครงการ

แน่นอนคุณกำลังเปลี่ยน strings.xml สำหรับความต้องการของคุณเอง บางครั้งคุณล้างค่า string.xmls สองบรรทัดจากรหัสของคุณ:

มันกำลังสร้างปัญหาในไฟล์ AndroidManifest.xml:

<application android:icon="@drawable/icon"  android:label="@string/app_name">
<activity android:name=".HelloAutoComplete" android:label="@string/app_name">

ดังนั้นจึงไม่สามารถสื่อสารกับ strings.xml


1

ฉันเปลี่ยนชื่อไฟล์ XML เลย์เอาต์ของฉันและพบในภายหลังว่าไฟล์ XML (ผู้ให้บริการวิดเจ็ตในกรณีนี้) ยังคงอ้างถึง XML เลย์เอาต์เก่าที่ไม่มีอยู่และป้องกันการสร้าง / แก้ไขอัตโนมัติของคลาส R

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