【问题标题】:Rendering Problems Exception raised during rendering: com.android.ide.common.rendering.api.LayoutlibCallback渲染问题在渲染过程中引发异常:com.android.ide.common.rendering.api.LayoutlibCallback
【发布时间】:2016-06-25 04:24:49
【问题描述】:

我在 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)

可能是什么问题?

【问题讨论】:

    标签: android android-studio


    【解决方案1】:

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

    【讨论】:

    • 是的,这行得通。此外,最好取消选中“自动选择最佳”,因为它只会选择最新的。您应该手动选择要预览的 sdk。
    • 我这样做了,但我现在收到以下错误。 Couldn't resolve resource @android:color/background_material_light
    • 只是警告:这是一个反复出现的问题。
    • 但是,为什么API级别设置为24时会出现这个问题。为什么不是23?
    【解决方案2】:

    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”

    【讨论】:

      【解决方案3】:

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

      我必须通过导航到以下路径来启用 API 23 下载

      工具 -> SDK 管理器 -> Android SDK -> SDK 平台 -> 名称。

      选中 Android 6.0(Marshwallow) 选项。这将立即下载。 现在您将能够看到 API 级别 23 并通过选择我们可以解决此问题的方法。

      【讨论】:

        【解决方案4】:

        我在 Windows 10 中使用 Android Studio 1.5.1 时遇到了类似的问题。无论选择哪个版本的 Android,预览都无法正常工作。堆栈跟踪开始于:

        "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 有效。

        【讨论】:

          【解决方案5】:

          这不是及时的答案,但对于任何寻找其他遇到相同问题的人来说,更新 android studio 就可以了。虽然上述所有建议都有效,但您希望获得更新(版本 2.1.2)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-08-06
            • 2016-10-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-22
            相关资源
            最近更新 更多