ข้อผิดพลาด: ปัญหาการแสดงผลไม่พบคลาสต่อไปนี้ android.support.v7.internal.widget.ActionBarOverlayLayout


97

ฉันเพิ่งเริ่มต้นพัฒนาแอพ android เมื่อฉันสร้างโปรเจ็กต์ใหม่บน Android Studio 1.1.0 มันแสดงข้อผิดพลาดนี้ " ปัญหาในการแสดงผลไม่พบคลาสต่อไปนี้ android.support.v7.internal.widget.ActionBarOverlayLayout "

ตอนนี้ฉันได้ค้นหาเกี่ยวกับสิ่งนี้ใน google แล้วและฉันพบว่าอาจมี 3 วิธีแก้ปัญหาที่คนส่วนใหญ่มอบให้

พวกเขากล่าวว่า:

  1. เปลี่ยน api (จากบานหน้าต่างแสดงตัวอย่าง) จาก 22 เป็น 21 หรือ

  2. เปลี่ยนธีมแอพจาก "ธีมโครงการ" เป็นธีมอื่น ๆ

  3. ตรวจสอบให้แน่ใจว่าได้นำเข้าไลบรารี appcompat-v7 ที่ถูกต้องในโครงสร้างโปรเจ็กต์ของคุณ -> การอ้างอิง อ้างอิงขั้นตอนเหล่านี้ : เพิ่มตัวระบุโปรเจ็กต์ฟีเจอร์ไลบรารีสนับสนุนในส่วนการอ้างอิง ตัวอย่างเช่นหากต้องการรวมโปรเจ็กต์ appcompat ให้เพิ่มคอมไพล์ "com.android.support:appcompat-v7:18.0.+" ลงในส่วนการอ้างอิงดังที่แสดงในตัวอย่างต่อไปนี้:

dependencies {
    ...
    compile "com.android.support:appcompat-v7:18.0.+" }

หมายเหตุ: lib สนับสนุน android ของฉันเป็นรุ่นล่าสุด (ติดตั้งโดยใช้ SDK Manager)

ทำตามสองขั้นตอนแรกลบข้อผิดพลาด แต่ฉันรู้สึกว่านี่ไม่ใช่วิธีแก้ปัญหาถาวรขั้นตอนที่สองดูเหมือนจะเป็นวิธีแก้ปัญหาชั่วคราว ฉันมีข้อสงสัยเกี่ยวกับขั้นตอนแรกเช่นกันว่าหากจะลบข้อผิดพลาดเราเปลี่ยน api จาก 22 เป็น 21 จากนั้นในตอนท้ายแอพของเราจะไม่ทำงานใน Android 5.1.1 (API 22) มันจะถูก จำกัด ไว้ที่ Android 5.0 .1 และต่ำกว่าเท่านั้น (API 21) ข้อสงสัยของฉันถูกต้องหรือไม่? เกี่ยวกับขั้นตอนที่สามเป็นการแก้ปัญหานี้อย่างถาวรหรือไม่?

ปล: ขออภัยสำหรับแท็กที่ไม่ตรงกันไม่อนุญาตให้เพิ่มแท็กที่แน่นอนเนื่องจากชื่อเสียงของไซต์


1
สำหรับฉันแม้แต่สองขั้นตอนแรกก็ไม่สามารถแก้ปัญหาได้ ... ฉันได้รับ "ปัญหาการแสดงผล" พร้อมกับเลย์เอาต์ทั้งหมดที่มีมุมมองจาก android.support *. นี่มันน่าหงุดหงิด!
user1987392

คำตอบ:


162

แก้ไขres / values ​​/ styles.xmlดังนี้:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"/>

คำอธิบายโดยละเอียดตามที่ร้องขอ: Theme.AppCompat.Light.DarkActionBarเป็นคลาสย่อยของซูเปอร์คลาสBaseอยู่ดี Ctrl + คลิก (Android Studio) จากนั้นคุณจะเข้าสู่แหล่งที่มา:

<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />

เราไม่ได้เปลี่ยนแปลงอะไรเราแค่กำหนดมันให้ชัดเจนขึ้น


29
ว้าวช่างเป็นประสบการณ์นอกกรอบใน Android Studio
Warren P

6
ถ้าฉันต้องการใช้ "Theme.AppCompat.Light.NoActionBar" แล้วล่ะก็
Haseeb Jadoon

4
น่าแปลกที่เพิ่มคำว่า "ฐาน" ทำงานให้ฉัน "ทุกฐานของคุณจะเป็นของเรา."
SMBiggs

1
ทำงานให้ฉันด้วย ... ฉันกำลังทำงานกับแอพเก่าและ Base แก้ไขข้อผิดพลาด!
Saeid Yazdani

1
เหตุใดการกำหนดธีมอย่างแม่นยำจึงช่วยแก้ปัญหาได้
Robert

28

นี่เป็นข้อบกพร่องที่ทราบตั้งแต่ Android Studio build 1.1 (ยังอยู่ในตัวอย่าง 1.2 และ 1.3) การเปลี่ยนระดับ API ของการแสดงตัวอย่างจาก 22 เป็น 21 จะช่วยแก้ปัญหาสำหรับคนส่วนใหญ่ ในขณะที่รอการแก้ไขคุณสามารถลองได้เช่นกัน

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

คำตอบเดิมที่นี่: ปัญหาการแสดงผลใน Android Studio v 1.1 / 1.2

เพียงแค่โพสต์ใหม่


16

แก้ไข src / res / values ​​/ styles.xml

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>

จากนั้นเลือก API22 คุณจะพบว่าปัญหานี้ได้รับการแก้ไขแล้ว!


3

หลังจากเกิดข้อผิดพลาดนี้ฉันใช้:

API-22 Android 5.1.1 และยังคงมีปัญหานี้อยู่ แต่คุณสามารถที่ด้านบนสุดของแถบเครื่องมือสตูดิโอ android เลือก:

Material Light -> Material Light

จากนั้นคุณสามารถดูตัวอย่างด้วยแถบเครื่องมือและธีมแสง

หวังว่านี่จะช่วยได้


1

ฉันแก้ไขปัญหานี้โดยเปลี่ยนเป็นธีม Holo Dark จากนั้นกลับไปที่ธีมแอพ ฉันเพิ่งคลิกปุ่มเหนือโปรแกรมดูที่ระบุว่าธีมแอปถัดจากมุมมองการหมุนใน Android Studio ประมาณ 10% ของเวลาเพียงอย่างเดียวไม่ได้ผลและฉันต้องเปลี่ยน API ของตัวแสดงจาก 22 เป็น 19 ด้วย

ไม่รู้ว่าทำไมถึงได้ผล แต่คำแนะนำที่ให้ไว้ข้างต้นไม่ได้ผลสำหรับฉัน


0

คุณไม่จำเป็นต้องเปลี่ยนธีม บางทีคุณอาจกำลังขยาย ActionBarActivity (เลิกใช้งานแล้ว) แทนที่จะเป็นเพียงแค่กิจกรรม เปลี่ยนแปลงและสร้างโครงการ


กฎใหม่ @Kleyton แทนที่จะขยาย ActionBarActivity (ซึ่งตอนนี้เลิกใช้แล้ว) ขอแนะนำให้ขยาย AppCompatActivity (ตามหน้านักพัฒนา Google Android)
Ashish Goyal

0

หากคุณเปลี่ยนกิจกรรมจาก ActionBarActivity เป็นแค่กิจกรรมอย่าลืมนำเข้ากิจกรรมนั้นเอง นั่นคือ

นำเข้า android.app.Activity

มันห่วย แต่เดี๋ยวก่อนมันเป็นความผิดของพวกเขาไม่ใช่ของเรา

นอกจากนี้คุณสามารถเปลี่ยนธีมได้โดยกด "AppTheme" แล้วเลือก Holo.Light.DarkActionBar จะอัปเดตไฟล์ styles.xml โดยอัตโนมัติหลังจากนั้นสร้างโครงการใหม่

ฉันทำสิ่งเหล่านี้ทั้งหมดและได้ผลสำหรับฉันแม้ว่าฉันคิดว่าพวกเขาที่ Google และ IntelliJ ควรทำบางอย่างเกี่ยวกับปัญหาการเรนเดอร์นี้เนื่องจากเราได้รับคำสั่งให้ย้ายจาก Eclipse ไปยัง Android Studio


กฎใหม่มาแล้วครับ! แทนที่จะขยาย ActionBarActivity (ซึ่งตอนนี้เลิกใช้แล้ว) ขอแนะนำให้ขยาย AppCompatActivity (ตามหน้านักพัฒนา Google Android)
Ashish Goyal

มันทำงานเหมือนกับกิจกรรมหรือไม่ และดูแลปัญหาการเรนเดอร์ XML หรือไม่
Andrecon

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