ปัญหาการแสดงผลเพิ่มขึ้นยกเว้นระหว่างการเรนเดอร์: com.android.ide.common.rendering.api.LayoutlibCallback


154

ฉันพบปัญหาเมื่อสร้างโครงการใน Android Studio (เวอร์ชั่น 1.5.1)

ฉันอธิบายการกระทำของฉันทีละขั้นตอน:

  • เปิด Android Studio
  • สร้างโครงการใหม่โดยไม่มีกิจกรรมใด ๆ
  • ทำกิจกรรมว่างเปล่า

และอาจมีปัญหาในโหมดดูตัวอย่าง:

ฉันได้รับข้อความนี้:

Rendering Problems Exception raised during rendering: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser(Ljava/lang/String;)Lorg/xmlpull/v1/XmlPullParser;

ในการติดตามสแต็ก:

java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser(Ljava/lang/String;)Lorg/xmlpull/v1/XmlPullParser;
    at com.android.layoutlib.bridge.impl.ResourceHelper.getInternalComplexColor(ResourceHelper.java:146)
    at com.android.layoutlib.bridge.impl.ResourceHelper.getColorStateList(ResourceHelper.java:231)
    at android.content.res.BridgeTypedArray.getColorStateList(BridgeTypedArray.java:308)
    at android.widget.TextView.<init>(TextView.java:776)
    at android.widget.TextView.<init>(TextView.java:705)
    at android.widget.TextView.<init>(TextView.java:701)
    at com.android.layoutlib.bridge.MockView.<init>(MockView.java:50)
    at com.android.layoutlib.bridge.MockView.<init>(MockView.java:45)
    at com.android.layoutlib.bridge.MockView.<init>(MockView.java:41)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:163)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at com.android.layoutlib.bridge.bars.CustomBar.<init>(CustomBar.java:95)
    at com.android.layoutlib.bridge.bars.StatusBar.<init>(StatusBar.java:67)
    at com.android.layoutlib.bridge.impl.Layout.createStatusBar(Layout.java:222)
    at com.android.layoutlib.bridge.impl.Layout.<init>(Layout.java:144)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:213)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:510)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:498)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498)
    at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72)
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:610)
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:607)
    at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:607)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629)
    at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:480)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
    at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:351)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    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)

มีปัญหาอะไร

คำตอบ:


414

ฉันมีปัญหาเดียวกันหลังจากอัปเดตเมื่อไม่กี่นาทีที่ผ่านมาสิ่งที่ฉันทำเพื่อแก้ไขปัญหาการแสดงผลคือการเปลี่ยนเวอร์ชัน android ที่ใช้เพื่อแสดงเลย์เอาต์จาก Android Studio กลับไปเป็น "API 23: Android 6.0"

สตูดิโอ Android


5
ใช่มันใช้ได้ผล นอกจากนี้ยังเป็นการดีที่สุดที่จะยกเลิกการเลือก "เลือกโดยอัตโนมัติที่ดีที่สุด" เนื่องจากเลือกเพียงรายการล่าสุด คุณควรเลือก sdk ที่คุณต้องการดูตัวอย่างด้วยตนเอง
Abhishek

ฉันทำสิ่งนี้ แต่ฉันได้รับข้อผิดพลาดต่อไปนี้ในขณะนี้ Couldn't resolve resource @android:color/background_material_light
Martin Hoban

เพียงเพื่อเตือน: มันเป็นปัญหาที่เกิดขึ้นอีก
marciowb

แต่ทำไมปัญหานี้เกิดขึ้นเมื่อระดับ API ตั้งค่าเป็น 24 และทำไมไม่เป็น 23
Jay Donga

19

java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser (Ljava / lang / String;) Lorg / xmlpull / v1 / XmlPullParser;

โยนถ้าแอปพลิเคชันพยายามเรียกวิธีการที่ระบุของคลาส (ทั้งแบบคงที่หรืออินสแตนซ์) และคลาสนั้นไม่มีคำจำกัดความของวิธีการนั้นอีกต่อไปโดยปกติข้อผิดพลาดนี้จะถูกตรวจจับโดยคอมไพเลอร์ ข้อผิดพลาดนี้สามารถเกิดขึ้นได้ในขณะดำเนินการถ้าคำจำกัดความของคลาสมีการเปลี่ยนแปลงเข้ากัน

แอปของคุณต้องกำหนดเป้าหมายAndroid 6.0 (API ระดับ 23)เพื่อเปิดใช้งานลักษณะการทำงานนี้ คุณไม่จำเป็นต้องเพิ่มรหัสเพิ่มเติมใด ๆ

เพียงเลือก "API 23: Android 6.0"ในส่วนดูตัวอย่าง ป้อนคำอธิบายรูปภาพที่นี่


2

ฉันมีปัญหาเดียวกันเมื่อฉันติดตั้ง android studio 2.1 บน ubuntu 14.04 แม้จะมีไอคอน android android ซึ่งแสดงรุ่น android ที่ใช้สำหรับการแสดงผลเค้าโครงก็แสดงรุ่น API ระดับ 24 เท่านั้นและไม่มีรุ่นอื่น

ฉันต้องเปิดใช้งาน API 23 เพื่อดาวน์โหลดโดยไปที่เส้นทางด้านล่าง

เครื่องมือ -> ตัวจัดการ SDK -> Android SDK -> แพลตฟอร์ม SDK -> ชื่อ

ตรวจสอบตัวเลือก Android 6.0 (Marshwallow) ตัวเลือกนี้จะถูกดาวน์โหลดทันที ตอนนี้คุณจะสามารถเห็นระดับ API 23 และโดยเลือกว่าเราจะแก้ไขปัญหานี้ได้อย่างไร


1

ฉันมีปัญหาคล้ายกันกับ Android Studio 1.5.1 ใน Windows 10 การแสดงตัวอย่างไม่ทำงานไม่ว่าจะเลือก Android เวอร์ชันใด stacktrace เริ่มต้นด้วย:

"java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser (Ljava / lang / String;) Lorg / xmlpull / v1 / XmlPullParser;"

เมื่อฉันลบคุณลักษณะtools:showIn="@layout/activity_main" จากRelativeLayoutปัญหาการแก้ไขสำหรับ Android ทุกรุ่นยกเว้น "N" ฉันเปิดใช้งาน Android 2.2, 2.3.3, 5.0.1 และ 6.0 แล้ว

ฉันไม่สามารถอธิบายได้ว่าเหตุใดการกระทำดังกล่าวจึงช่วยแก้ปัญหาได้


0

นี่ไม่ใช่คำตอบที่ทันเวลา แต่สำหรับทุกคนที่กำลังมองหาคนอื่นที่ประสบปัญหาเดียวกัน ในขณะที่คำแนะนำทั้งหมดข้างต้นทำงานได้คุณต้องการรับการอัปเดต (เวอร์ชัน 2.1.2)

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