เกิดข้อยกเว้นขึ้นระหว่างการแสดงผล: ไม่พบโหมด 0


91

หลังจากอัปเดตBuildToolsเป็นเวอร์ชัน 25.0.0

compileSdkVersion 25
buildToolsVersion "25"

ฉันมีปัญหากับการแสดงตัวอย่างเค้าโครงของ Android ตอนนี้แสดงข้อผิดพลาด:

เกิดข้อยกเว้นขึ้นระหว่างการแสดงผล: ไม่พบโหมด 0

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

ฉันพยายามล้างและสร้างโครงการใหม่ แต่ไม่ได้ผล ก่อนอัปเดตทุกอย่างดี

ฉันรู้ว่าฉันสามารถกลับไปใช้เวอร์ชันก่อนหน้าBuildToolsได้ แต่ฉันอยากรู้ว่าทำไมมันถึงใช้ไม่ได้กับเวอร์ชั่น25.0.0?


ดูเหมือนว่าจะมีปัญหากับ RecyclerView

java.lang.IllegalStateException: Unable to locate mode 0
at android.view.DisplayInfo.findMode(DisplayInfo.java:458)
at android.view.DisplayInfo.getMode(DisplayInfo.java:445)
at android.view.Display.getRefreshRate(Display.java:648)
at android.support.v7.widget.RecyclerView.onAttachedToWindow(RecyclerView.java:2392)
at android.view.View.dispatchAttachedToWindow(View.java:15392)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2953)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:333)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$53(RenderTask.java:659)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

15
ดูเหมือนบั๊กกับ 25.0.0 ฉันเปิดปัญหาให้แล้ว: code.google.com/p/android/issues/…
Jim Pekarek

2
ฉันได้รับปัญหาเดียวกันกับ compileSdkVersion 24 / buildToolsVersion "24.0.2" - อย่างไรก็ตามฉันปล่อยให้ Android Studio ทำการอัปเดต (สิ่งต่างๆโดยพื้นฐานแล้วสิ่งที่ขอให้อัปเดตเป็นหลัก) เมื่อวานนี้และฉันเชื่อว่ามันพังหลังจากนั้น
Steven Craft

1
@HenriquedeSousa ปัญหาที่เกิดขึ้นเมื่อen.wikipedia.org/wiki/Andy_Rubinออกจาก #Google
IntelliJ Amiya

คำตอบ:


111

นี้ปัญหาได้รับการแก้ไขปรับปรุงห้องสมุดเพื่อการสนับสนุน

compile 'com.android.support:recyclerview-v7:25.0.1'
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'

62

เป็นข้อบกพร่องที่น่ารำคาญของเวอร์ชัน 25 .. วิธีแก้ปัญหาชั่วคราวคือการปรับลดรุ่นโครงการของคุณ

 compile 'com.android.support:appcompat-v7:24.2.1'
 compile 'com.android.support:design:24.2.1'
 compile 'com.android.support:recyclerview-v7:24.2.1'

18

อีกวิธีที่ชั่วคราวคือการแทนที่<android.support.v7.widget.RecyclerViewด้วย<RecyclerViewเพื่อให้คุณสามารถมองเห็นมุมมองการแสดงผล เมื่อคอมไพล์ให้เปลี่ยนกลับเป็น<android.support.v7.widget.RecyclerView


7

ไลบรารีสนับสนุน Android มีฟังก์ชันยูทิลิตี้ที่เข้ากันได้แบบย้อนหลัง แอปสามารถใช้ฟังก์ชันยูทิลิตี้เหล่านี้เพื่อมอบประสบการณ์การใช้งานที่เหมาะสมในระบบ Android เวอร์ชันต่างๆ

มันเป็นข้อผิดพลาดปัญหาและควรได้รับการแก้ไขในอนาคตข่าวของห้องสมุดการสนับสนุนการออกแบบ

คุณควรจะปรับลดรุ่นของคุณสำหรับชั่วคราวโซลูชั่น

compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:v7:25.0.1' 
compile 'com.android.support:recyclerview-v7:25.0.1' 

6

หากต้องการดูตัวอย่างฉันใช้เคล็ดลับนี้ ..... เพิ่ม app:layoutManager="0"สำหรับ RecyclerView ใน XML เค้าโครง

แต่จะโยน InflateException ในขณะทำงาน ดังนั้นลบคุณสมบัตินี้ออกจากไฟล์เลย์เอาต์ XML ก่อนที่จะเรียกใช้แอพ!


4

ในฐานะโซลูชัน temp คุณสามารถสร้างคลาสลูกของมุมมองรีไซเคิลและแทนที่เฉพาะ onAttachedToWindow ดังต่อไปนี้ จากนั้นใช้คลาสนี้ในเค้าโครง XML ของคุณ

@Override
protected void onAttachedToWindow() {
    if (!isInEditMode()) {
        super.onAttachedToWindow();
    }
}

อัปเดต: เริ่มจากไลบรารีสนับสนุน 25.0.1 แก้ไขแล้วรวมอยู่ในไลบรารีและไม่มีปัญหาอีกต่อไป

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