ข้อผิดพลาด: ปัญหาการแสดงผลไม่พบคลาสต่อไปนี้ 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.