【问题标题】:Bug in Android Studio with tools:showIn="navigation_view"带有工具的 Android Studio 中的错误:showIn="navigation_view"
【发布时间】:2018-07-26 18:48:21
【问题描述】:

我在 Android Studio 中有一个奇怪的错误,它阻止我在菜单项中使用此属性来使用它的导航抽屉。 这是错误代码(NullPointerException):

null
    java.lang.NullPointerException
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.getRenderResult(LayoutlibSceneManager.java:602)
    at com.android.tools.idea.uibuilder.surface.ScreenViewBase.getResult(ScreenViewBase.java:109)
    at com.android.tools.idea.uibuilder.surface.ScreenView.getResult(ScreenView.java:30)
    at com.android.tools.idea.uibuilder.menu.NavigationViewSceneView.getPreferredSize(NavigationViewSceneView.java:64)
    at com.android.tools.idea.common.surface.SceneView.getPreferredSize(SceneView.java:95)
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.createSceneViewsForMenu(LayoutlibSceneManager.java:265)
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.doCreateSceneView(LayoutlibSceneManager.java:234)
    at com.android.tools.idea.common.scene.SceneManager.createSceneView(SceneManager.java:73)
    at com.android.tools.idea.common.scene.SceneManager.<init>(SceneManager.java:66)
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.<init>(LayoutlibSceneManager.java:157)
    at com.android.tools.idea.uibuilder.surface.NlDesignSurface.createSceneManager(NlDesignSurface.java:145)
    at com.android.tools.idea.common.surface.DesignSurface.setModel(DesignSurface.java:281)
    at com.android.tools.idea.common.editor.NlEditorPanel.initNeleModelOnEventDispatchThread(NlEditorPanel.java:143)
    at com.android.tools.idea.common.editor.NlEditorPanel.lambda$null$4(NlEditorPanel.java:139)
    at com.intellij.openapi.project.DumbServiceImpl.lambda$smartInvokeLater$7(DumbServiceImpl.java:366)
    at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


java.lang.NullPointerException
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.getRenderResult(LayoutlibSceneManager.java:602)
    at com.android.tools.idea.uibuilder.surface.ScreenViewBase.getResult(ScreenViewBase.java:109)
    at com.android.tools.idea.uibuilder.surface.ScreenView.getResult(ScreenView.java:30)
    at com.android.tools.idea.uibuilder.menu.NavigationViewSceneView.getPreferredSize(NavigationViewSceneView.java:64)
    at com.android.tools.idea.common.surface.SceneView.getPreferredSize(SceneView.java:95)
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.createSceneViewsForMenu(LayoutlibSceneManager.java:265)
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.doCreateSceneView(LayoutlibSceneManager.java:234)
    at com.android.tools.idea.common.scene.SceneManager.createSceneView(SceneManager.java:73)
    at com.android.tools.idea.common.scene.SceneManager.<init>(SceneManager.java:66)
    at com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.<init>(LayoutlibSceneManager.java:157)
    at com.android.tools.idea.uibuilder.surface.NlDesignSurface.createSceneManager(NlDesignSurface.java:145)
    at com.android.tools.idea.common.surface.DesignSurface.setModel(DesignSurface.java:281)
    at com.android.tools.idea.uibuilder.editor.NlPreviewForm.initNeleModel(NlPreviewForm.java:420)
    at com.android.tools.idea.uibuilder.editor.NlPreviewForm.initPreviewFormAfterBuildOnEventDispatchThread(NlPreviewForm.java:353)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2795)
    at com.android.tools.idea.uibuilder.editor.NlPreviewForm.initPreviewFormAfterInitialBuild(NlPreviewForm.java:318)
    at com.android.tools.idea.startup.ClearResourceCacheAfterFirstBuild.runWhenResourceCacheClean(ClearResourceCacheAfterFirstBuild.kt:80)
    at com.android.tools.idea.uibuilder.editor.NlPreviewForm.initPreviewForm(NlPreviewForm.java:305)
    at com.android.tools.idea.uibuilder.editor.NlPreviewForm.activate(NlPreviewForm.java:524)
    at com.android.tools.idea.uibuilder.editor.NlPreviewManager$1.stateChanged(NlPreviewManager.java:141)
    at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:99)
    at com.intellij.util.EventDispatcher.access$200(EventDispatcher.java:35)
    at com.intellij.util.EventDispatcher$2.invoke(EventDispatcher.java:79)
    at com.sun.proxy.$Proxy81.stateChanged(Unknown Source)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.fireStateChanged(ToolWindowManagerImpl.java:1658)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.execute(ToolWindowManagerImpl.java:568)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activateToolWindow(ToolWindowManagerImpl.java:736)
    at com.intellij.openapi.wm.impl.ToolWindowImpl.activate(ToolWindowImpl.java:203)
    at com.android.tools.idea.uibuilder.editor.NlPreviewManager$2.run(NlPreviewManager.java:300)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
    at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:277)
    at com.intellij.util.ui.UIUtil.invokeAndWaitIfNeeded(UIUtil.java:2816)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:288)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:246)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:246)
    at com.intellij.util.Alarm$Request.runSafely(Alarm.java:417)
    at com.intellij.util.Alarm$Request.access$700(Alarm.java:344)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:384)
    at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

如果您能帮助我用 Android Studio 修复此错误,会有所帮助吗? 我已经搜索了很多解决方案,但没有找到任何东西。

【问题讨论】:

  • 您应该可以删除:tools:showIn="navigation_view",以防止该错误。
  • 感谢您的帮助,但我仍然想知道它为什么会发生以及如何修复它以使用此属性
  • stackoverflow.com/questions/50201356/… 中有一个临时解决方法

标签: android android-studio


【解决方案1】:

这是错误 #80037922

与您的报告相同的堆栈:

null java.lang.NullPointerException 在 com.android.tools.idea.uibuilder.scene.LayoutlibSceneManager.getRenderResult(LayoutlibSceneManager.java:602) 在 com.android.tools.idea.uibuilder.surface.ScreenViewBase.getResult(ScreenViewBase.java:109) 在 com.android.tools.idea.uibuilder.surface.ScreenView.getResult(ScreenView.java:30)

由具有以下环境的人报告:

  • Android Studio 构建:Android Studio 3.1.2 AI-1734720617
  • Gradle 插件版本:
  • Gradle 版本:4.4
  • Java 版本:嵌入式 JDK
  • 操作系统:Windows 10

当前优先级和严重性为 P2,分配给 Google 的某个人进行修复。

最后评论:

您使用的是什么 API 版本?你能不能也试试 3.2 和 让我们知道这是否能解决问题?

https://issuetracker.google.com/issues/80037922

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2017-06-21
    • 1970-01-01
    • 2018-07-20
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多