【问题标题】:Android Navigation GraphAndroid 导航图
【发布时间】:2018-05-30 20:38:23
【问题描述】:

在 Android Studio canary 3.2 中使用新的导航图。我遇到了导航图的视觉效果无法呈现的问题。显示屏显示“正在等待构建完成……”我尝试过重建、清理,甚至卸载并重新安装了 Android Studio。似乎没有什么可以解决它。有人有运气吗? (我收到以下 IDE 错误。)

空 java.lang.IllegalStateException 在 com.android.tools.idea.naveditor.scene.decorator.NavSceneDecoratorFactory.(NavSceneDecoratorFactory.kt:39) 在 com.android.tools.idea.naveditor.scene.NavSceneManager.getSceneDecoratorFactory(NavSceneManager.java:510) 在 com.android.tools.idea.common.scene.SceneComponent.(SceneComponent.java:116) 在 com.android.tools.idea.common.scene.SceneManager.createHierarchy(SceneManager.java:164) 在 com.android.tools.idea.naveditor.scene.NavSceneManager.createHierarchy(NavSceneManager.java:265) 在 com.android.tools.idea.common.scene.SceneManager.update(SceneManager.java:121) 在 com.android.tools.idea.naveditor.scene.NavSceneManager.requestRender(NavSceneManager.java:340) 在 com.android.tools.idea.common.surface.DesignSurface.requestRender(DesignSurface.java:1291) 在 com.android.tools.idea.naveditor.surface.NavDesignSurface.layoutContent(NavDesignSurface.java:227) 在 com.android.tools.idea.common.surface.DesignSurface.setScale(DesignSurface.java:730) 在 com.android.tools.idea.common.surface.DesignSurface.setScale(DesignSurface.java:683) 在 com.android.tools.idea.common.surface.DesignSurface.zoom(DesignSurface.java:571) 在 com.android.tools.idea.naveditor.surface.NavDesignSurface.zoom(NavDesignSurface.java:402) 在 com.android.tools.idea.common.surface.DesignSurface.zoom(DesignSurface.java:513) 在 com.android.tools.idea.common.surface.DesignSurface.zoomToFit(DesignSurface.java:631) 在 com.android.tools.idea.naveditor.surface.NavDesignSurface.refreshRoot(NavDesignSurface.java:521) 在 com.android.tools.idea.naveditor.surface.NavDesignSurface.getCurrentNavigation(NavDesignSurface.java:233) 在 com.android.tools.idea.naveditor.scene.NavSceneManager.getRoot(NavSceneManager.java:241) 在 com.android.tools.idea.common.scene.SceneManager.update(SceneManager.java:115) 在 com.android.tools.idea.naveditor.scene.NavSceneManager.requestRender(NavSceneManager.java:340) 在 com.android.tools.idea.common.surface.DesignSurface.requestRender(DesignSurface.java:1291) 在 com.android.tools.idea.naveditor.surface.NavDesignSurface.layoutContent(NavDesignSurface.java:227) 在 com.android.tools.idea.common.surface.DesignSurface.addModel(DesignSurface.java:310) 在 com.android.tools.idea.common.surface.DesignSurface.setModel(DesignSurface.java:368) 在 com.android.tools.idea.common.editor.NlEditorPanel.initNeleModelOnEventDispatchThread(NlEditorPanel.java:162) 在 com.android.tools.idea.common.editor.NlEditorPanel.lambda$null$4(NlEditorPanel.java:149) 在 com.intellij.openapi.project.DumbServiceImpl.lambda$smartInvokeLater$7(DumbServiceImpl.java:430) 在 com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315) 在 com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:447) 在 com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:431) 在 com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:415) 在 java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762) 在 java.awt.EventQueue.access$500(EventQueue.java:98) 在 java.awt.EventQueue$3.run(EventQueue.java:715) 在 java.awt.EventQueue$3.run(EventQueue.java:709) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:732) 在 com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:779) 在 com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:720) 在 com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:395) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

【问题讨论】:

  • 对我有帮助的——虽然这绝对不是一个很好的解决方案——是重新编写项目。
  • Dang,我尝试删除 .idea 文件并将其重新导入工作室,但仍然无法正常工作....
  • 我想尝试重新创建项目将是你的救援:/

标签: android android-studio navigation


【解决方案1】:

偶然发现了一个解决方案。

  1. 首先,删除导航控制器的gradle依赖以及代码中的所有用法。
  2. 删除资源中的导航文件夹。
  3. 确保 gradle 同步成功。
  4. 重启 Android Studio。
  5. 右键res文件夹,新建资源。将其命名为 nav_graph,选择资源类型 - 导航。 AS 提供下载所需的依赖项,按是。
  6. 享受导航控制器的乐趣。

请注意,这个序列不是从第一次开始就对我有用,如果仍然失败,请重试。

编辑:添加其他导航控制器依赖项(ui 和导航测试)并重新启动 AS 后,出现了相同的错误。经过一个小实验,我找到了罪魁祸首——它是依赖 androidTestImplementation "android.arch.navigation:navigation-testing-ktx:$navigationVersion"。只是暂时不要使用或退出AS前评论,启动后取消评论。

【讨论】:

  • 我把它注释掉了,重新启动,它又回来了!谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多