Reputation: 1709
Using the new Navigation Graph in Android Studio canary 3.2. I've run into the problem where the visual of the nav graph will not render. The display says "Waiting for build to finish..." I've tried rebuilding, cleaning, even uninstalled & reinstalled Android Studio. Nothing seems to fix it. Anyone have any luck? (I get the following IDE error.)
null java.lang.IllegalStateException at com.android.tools.idea.naveditor.scene.decorator.NavSceneDecoratorFactory.(NavSceneDecoratorFactory.kt:39) at com.android.tools.idea.naveditor.scene.NavSceneManager.getSceneDecoratorFactory(NavSceneManager.java:510) at com.android.tools.idea.common.scene.SceneComponent.(SceneComponent.java:116) at com.android.tools.idea.common.scene.SceneManager.createHierarchy(SceneManager.java:164) at com.android.tools.idea.naveditor.scene.NavSceneManager.createHierarchy(NavSceneManager.java:265) at com.android.tools.idea.common.scene.SceneManager.update(SceneManager.java:121) at com.android.tools.idea.naveditor.scene.NavSceneManager.requestRender(NavSceneManager.java:340) at com.android.tools.idea.common.surface.DesignSurface.requestRender(DesignSurface.java:1291) at com.android.tools.idea.naveditor.surface.NavDesignSurface.layoutContent(NavDesignSurface.java:227) at com.android.tools.idea.common.surface.DesignSurface.setScale(DesignSurface.java:730) at com.android.tools.idea.common.surface.DesignSurface.setScale(DesignSurface.java:683) at com.android.tools.idea.common.surface.DesignSurface.zoom(DesignSurface.java:571) at com.android.tools.idea.naveditor.surface.NavDesignSurface.zoom(NavDesignSurface.java:402) at com.android.tools.idea.common.surface.DesignSurface.zoom(DesignSurface.java:513) at com.android.tools.idea.common.surface.DesignSurface.zoomToFit(DesignSurface.java:631) at com.android.tools.idea.naveditor.surface.NavDesignSurface.refreshRoot(NavDesignSurface.java:521) at com.android.tools.idea.naveditor.surface.NavDesignSurface.getCurrentNavigation(NavDesignSurface.java:233) at com.android.tools.idea.naveditor.scene.NavSceneManager.getRoot(NavSceneManager.java:241) at com.android.tools.idea.common.scene.SceneManager.update(SceneManager.java:115) at com.android.tools.idea.naveditor.scene.NavSceneManager.requestRender(NavSceneManager.java:340) at com.android.tools.idea.common.surface.DesignSurface.requestRender(DesignSurface.java:1291) at com.android.tools.idea.naveditor.surface.NavDesignSurface.layoutContent(NavDesignSurface.java:227) at com.android.tools.idea.common.surface.DesignSurface.addModel(DesignSurface.java:310) at com.android.tools.idea.common.surface.DesignSurface.setModel(DesignSurface.java:368) at com.android.tools.idea.common.editor.NlEditorPanel.initNeleModelOnEventDispatchThread(NlEditorPanel.java:162) at com.android.tools.idea.common.editor.NlEditorPanel.lambda$null$4(NlEditorPanel.java:149) at com.intellij.openapi.project.DumbServiceImpl.lambda$smartInvokeLater$7(DumbServiceImpl.java:430) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:447) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:431) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:415) 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:779) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:720) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:395) 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)
Upvotes: 4
Views: 1192
Reputation: 1467
Stumbled upon a solution accidentally.
Note that this sequence worked for me not from the first time, retry if it still fails.
Edit: after adding other navigation controller dependencies (ui and navigation testing) and restarting the AS, same bug occurred. After a small experiment I have found the culprit - it is dependency androidTestImplementation "android.arch.navigation:navigation-testing-ktx:$navigationVersion". Just do not use it yet or comment it before exiting AS, uncomment after starting it.
Upvotes: 4