渲染 android 布局上的 NullPointerException

NullPointerException on render android layout

我的 android 项目中的任何布局,都会生成渲染异常:

Android Studio 1.2 测试版

java.lang.NullPointerException
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.isThemeAppCompat(RenderSessionImpl.java:1203)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.findStatusBar(RenderSessionImpl.java:1066)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.init(RenderSessionImpl.java:209)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:319)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
    at com.android.tools.idea.rendering.RenderTask.compute(RenderTask.java:497)
    at com.android.tools.idea.rendering.RenderTask.compute(RenderTask.java:485)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590)
    at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel.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.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.run(Alarm.java:351)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

这是 Android Studio Beta 1.2 中的错误。 升级到1.3后,不会出现这种情况

我今天在最新版本的 AS 上遇到了这个错误,但原因不同。

我重命名了我的一个应用主题,然后在我手动选择该主题的所有 activity 布局文件中(在预览 window 的主题下拉菜单中),我收到了这个错误。

一旦我意识到这是问题所在,我只需将主题更改为 valid/existing 主题即可轻松修复它。同样,我不是在谈论更改 activity 的已定义主题,我是在谈论更改 PREVIEW 主题。

将预览渲染目标从 22 切换到 21 让我在 Android Studio 1.2 Stable 上的错误消失了。

我支持Siavash。我在 styles.xml 中更改了其中一种样式的名称并开始收到相同的错误消息。

查看设计预览工具栏,检查以确保应用主题名称(AppTheme、AppBaseTheme 等)存在。只需单击显示 AppTheme 的位置,如果选择不在选项列表中,则它不存在于您的项目中。尝试将其添加到 theme.xml 或 style.xml.