You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This one's only happening in the demo branch, only when using a mouse. It happens if your cursor was over one of the characters and the inactivity timeout pops you back to the welcome screen. The stack seems to suggest that in the process of detaching, the Listener fires the onPointerExit callback. We call setState when that happens, which causes this error. The error message, however, mentions that we are in a build phase...either way, is there a good way to detect either condition and avoid calling setState, or is there something more fundamental going on here?
This ends up putting the demo in an unrecoverable state.
I/flutter ( 6197): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 6197): The following assertion was thrown building Overlay-[LabeledGlobalKey<OverlayState>#e7924](state:
I/flutter ( 6197): OverlayState#1e814(tickers: tracking 0 tickers, entries: [OverlayEntry#56a87(opaque: false;
I/flutter ( 6197): maintainState: false), OverlayEntry#e61e6(opaque: false; maintainState: true),
I/flutter ( 6197): OverlayEntry#5b713(opaque: true; maintainState: false), OverlayEntry#5be4e(opaque: false;
I/flutter ( 6197): maintainState: true)])):
I/flutter ( 6197): setState() or markNeedsBuild() called during build.
I/flutter ( 6197): This CharacterListItem widget cannot be marked as needing to build because the framework is already
I/flutter ( 6197): in the process of building widgets. A widget can be marked as needing to be built during the build
I/flutter ( 6197): phase only if one of its ancestors is currently building. This exception is allowed because the
I/flutter ( 6197): framework builds parent widgets before children, which means a dirty descendant will always be
I/flutter ( 6197): built. Otherwise, the framework might not visit this widget during this build phase.
I/flutter ( 6197): The widget on which setState() or markNeedsBuild() was called was:
I/flutter ( 6197): CharacterListItem(state: _CharacterListItemState#9f280)
I/flutter ( 6197): The widget which was currently being built when the offending call was made was:
I/flutter ( 6197): Overlay-[LabeledGlobalKey<OverlayState>#e7924](state: OverlayState#1e814(tickers: tracking 0
I/flutter ( 6197): tickers, entries: [OverlayEntry#56a87(opaque: false; maintainState: false),
I/flutter ( 6197): OverlayEntry#e61e6(opaque: false; maintainState: true), OverlayEntry#5b713(opaque: true;
I/flutter ( 6197): maintainState: false), OverlayEntry#5be4e(opaque: false; maintainState: true)]))
I/flutter ( 6197):
I/flutter ( 6197): When the exception was thrown, this was the stack:
I/flutter ( 6197): #0 Element.markNeedsBuild.<anonymous closure> (package:flutter/src/widgets/framework.dart:3503:11)
I/flutter ( 6197): #1 Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:3529:6)
I/flutter ( 6197): #2 State.setState (package:flutter/src/widgets/framework.dart:1133:14)
I/flutter ( 6197): #3 _CharacterListItemState._stopPlaying (package:dev_rpg/src/game_screen/character_pool_page.dart:91:44)
I/flutter ( 6197): #4 MouseTracker.detachAnnotation (package:flutter/src/gestures/mouse_tracking.dart:125:20)
I/flutter ( 6197): #5 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2593:45)
I/flutter ( 6197): #6 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #7 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #8 _RenderSliverMultiBoxAdaptor&RenderSliver&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #9 RenderSliverMultiBoxAdaptor.detach (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:305:11)
I/flutter ( 6197): #10 _RenderSliverPadding&RenderSliver&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #11 _RenderViewportBase&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #12 RenderViewportBase.detach (package:flutter/src/rendering/viewport.dart:285:11)
I/flutter ( 6197): #13 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #14 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #15 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #16 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2595:11)
I/flutter ( 6197): #17 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #18 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #19 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2595:11)
I/flutter ( 6197): #20 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #21 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #22 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #23 RenderCustomPaint.detach (package:flutter/src/rendering/custom_paint.dart:496:11)
I/flutter ( 6197): #24 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #25 _RenderStack&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #26 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #27 _RenderFlex&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #28 _RenderCustomMultiChildLayoutBox&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #29 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #30 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #31 _RenderCustomClip.detach (package:flutter/src/rendering/proxy_box.dart:1189:11)
I/flutter ( 6197): #32 __RenderLayoutBuilder&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #33 __RenderLayoutBuilder&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #34 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #35 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2595:11)
I/flutter ( 6197): #36 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #37 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #38 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #39 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #40 RenderAnimatedOpacity.detach (package:flutter/src/rendering/proxy_box.dart:887:11)
I/flutter ( 6197): #41 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #42 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #43 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #44 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #45 AbstractNode.dropChild (package:flutter/src/foundation/node.dart:147:13)
I/flutter ( 6197): #46 RenderObject.dropChild (package:flutter/src/rendering/object.dart:1169:11)
I/flutter ( 6197): #47 _RenderStack&RenderBox&ContainerRenderObjectMixin.remove (package:flutter/src/rendering/object.dart:2977:5)
I/flutter ( 6197): #48 MultiChildRenderObjectElement.removeChildRenderObject (package:flutter/src/widgets/framework.dart:4957:18)
I/flutter ( 6197): #49 RenderObjectElement.detachRenderObject (package:flutter/src/widgets/framework.dart:4744:36)
I/flutter ( 6197): #50 Element.detachRenderObject.<anonymous closure> (package:flutter/src/widgets/framework.dart:2867:13)
I/flutter ( 6197): #51 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3770:14)
I/flutter ( 6197): #52 Element.detachRenderObject (package:flutter/src/widgets/framework.dart:2866:5)
I/flutter ( 6197): #53 Element.detachRenderObject.<anonymous closure> (package:flutter/src/widgets/framework.dart:2867:13)
I/flutter ( 6197): #54 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3770:14)
I/flutter ( 6197): #55 Element.detachRenderObject (package:flutter/src/widgets/framework.dart:2866:5)
I/flutter ( 6197): #56 Element.detachRenderObject.<anonymous closure> (package:flutter/src/widgets/framework.dart:2867:13)
I/flutter ( 6197): #57 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3770:14)
I/flutter ( 6197): #58 Element.detachRenderObject (package:flutter/src/widgets/framework.dart:2866:5)
I/flutter ( 6197): #59 Element.deactivateChild (package:flutter/src/widgets/framework.dart:2996:11)
I/flutter ( 6197): #60 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4694:11)
I/flutter ( 6197): #61 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4992:17)
I/flutter ( 6197): #62 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15)
I/flutter ( 6197): #63 _TheatreElement.update (package:flutter/src/widgets/overlay.dart:607:16)
I/flutter ( 6197): #64 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15)
I/flutter ( 6197): #65 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16)
I/flutter ( 6197): #66 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5)
I/flutter ( 6197): #67 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2278:33)
I/flutter ( 6197): #68 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
I/flutter ( 6197): #69 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
I/flutter ( 6197): #70 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15)
I/flutter ( 6197): #71 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9)
I/flutter ( 6197): #72 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:864:5)
I/flutter ( 6197): #76 _invoke (dart:ui/hooks.dart:219:10)
I/flutter ( 6197): #77 _drawFrame (dart:ui/hooks.dart:178:3)
I/flutter ( 6197): (elided 3 frames from package dart:async)
I/flutter ( 6197): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 6197): Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2276 pos 16: '!_dirtyElements[index]._active || _dirtyElements[index]._debugIsInScope(context)': is not true.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2276 pos 16: '!_dirtyElements[index]._active || _dirtyElements[index]._debugIsInScope(context)': is not true.
I/flutter ( 6197): Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2276 pos 16: '!_dirtyElements[index]._active || _dirtyElements[index]._debugIsInScope(context)': is not true.
I/flutter ( 6197): Another exception was thrown: Duplicate GlobalKeys detected in widget tree.
The text was updated successfully, but these errors were encountered:
EEP. I suggest just fully removing the Listener class and not having this hover behavior. I ran into some weirdness with it when I was adding the live coding. There are definitely some bugs with hover to be filed, but we don't have time to fix them by I/O :-(
This one's only happening in the demo branch, only when using a mouse. It happens if your cursor was over one of the characters and the inactivity timeout pops you back to the welcome screen. The stack seems to suggest that in the process of detaching, the Listener fires the onPointerExit callback. We call setState when that happens, which causes this error. The error message, however, mentions that we are in a build phase...either way, is there a good way to detect either condition and avoid calling setState, or is there something more fundamental going on here?
This ends up putting the demo in an unrecoverable state.
The text was updated successfully, but these errors were encountered: