渲染问题在渲染过程中引发exception:com.android.ide.common.rendering.api.LayoutlibCallback

在Android Studio中创build项目时遇到问题。 (版本1.5.1)

我一步一步描述我的行动:

  • 打开Android Studio。
  • 创build一个没有任何活动的新项目。
  • 做一个空白的活动。

在预览模式下可能会出现问题:

我得到这个消息:

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) 

可能是什么问题呢?

我在几分钟之前更新了同样的问题,我做了解决渲染问题的方法是将用于从Android Studio呈现布局的Android版本更改回“API 23:Android 6.0”。

Android工作室

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

如果应用程序尝试调用某个类的指定方法(静态或实例),并且该类不再具有该方法的定义,则抛出该exception。通常,编译器会捕获此错误; 这个错误只能在运行时发生,如果一个类的定义不兼容改变。

您的应用程序必须针对Android 6.0(API级别23)启用此行为; 你不需要添加任何额外的代码。

只需在预览部分select“API 23:Android 6.0”在这里输入图像说明

当我在ubuntu 14.0上安装android studio 2.1时,我遇到了同样的问题。即使显示用于渲染布局的android版本的android机器人图标,也只显示了API Level 24版本,没有其他版本。

我不得不通过导航到下面的path来启用API 23

工具 – > SDKpipe理器 – > Android SDK – > SDK平台 – >名称。

检查Android 6.0(Marshwallow)选项。这将现在下载。 现在,您将能够看到API 23级,并select我们可以解决这个问题。

我在Windows 10中遇到了与Android Studio 1.5.1类似的问题。无论select何种版本的Android,预览都无法正常工作。 堆栈跟踪开始于:

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

当我从RelativeLayout删除属性tools:showIn="@layout/activity_main" ,除“N”之外的所有Android版本都会解决该问题。 我有Android 2.2,2.3.3,5.0.1和6.0启用

我不能解释为什么行动解决了问题,或为什么它的工作版本N.

这不是一个及时的答案,但是对于任何正在经历同样问题的任何人来说,android studio的更新还是有诀窍的。 尽pipe上面所有的build议工作,你想获得更新(版本2.1.2)。