렌더링 문제 렌더링 중 예외 발생 : 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"으로 다시 변경하는 것이 었습니다.

안드로이드 스튜디오


5
그렇습니다. 또한 최신 항목 만 선택하므로 "최선 자동 선택"을 선택 해제하는 것이 가장 좋습니다. 미리 보려는 SDK를 수동으로 선택해야합니다.
Abhishek

나는 이것을했지만 지금 다음과 같은 오류가 발생합니다. Couldn't resolve resource @android:color/background_material_light
Martin Hoban

경고 : 그것은 반복되는 문제입니다.
marciowb

그러나 API 레벨이 24로 설정 될 때이 문제점이 발생하는 이유는 무엇입니까?
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

우분투 14.04에 android studio 2.1을 설치할 때도 동일한 문제가 발생했습니다.

아래 경로로 이동하여 API 23을 다운로드해야했습니다.

도구-> SDK 관리자-> Android SDK-> SDK 플랫폼-> 이름.

Android 6.0 (Marshwallow) 옵션을 확인하면 지금 다운로드됩니다. 이제 API 레벨 23을보고이 문제를 해결할 수있는 것을 선택하면됩니다.


1

Windows 10의 Android Studio 1.5.1에서 비슷한 문제가 발생했습니다. 선택한 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하면 "N"을 제외한 모든 Android 버전에서 문제가 해결됩니다. Android 2.2, 2.3.3, 5.0.1 및 6.0을 사용하도록 설정했습니다.

액션이 왜 문제를 해결하는지 또는 왜 버전 N에서 작동하는지 설명 할 수 없습니다.


0

이것은 적시에 답변이 아니지만 동일한 문제가 발생하는 다른 사람을 찾는 사람에게는 안드로이드 스튜디오의 업데이트가 트릭을 수행합니다. 위의 모든 제안이 효과가 있지만 업데이트를 원합니다 (버전 2.1.2).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.