markers_generator_sample
markers_generator_sample copied to clipboard
Sample code throws setState() or markNeedsBuild() called during build.
Thank you for making your Marker Generator class available.
The sample code is not working for me in Flutter 3.3.2. It throws the error setState() or markNeedsBuild() called during build.
Have you seen this error before? Thank you.
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown building KeyedSubtree-[GlobalKey#676a9]:
setState() or markNeedsBuild() called during build.
This Overlay widget cannot be marked as needing to build because the framework is already in the process
of building widgets. A widget can be marked as needing to be built during the build phase only if one of its
ancestors is currently building. This exception is allowed because the framework builds parent widgets before
children, which means a dirty descendant will always be built. Otherwise, the framework might not visit this
widget during this build phase.
The widget on which setState() or markNeedsBuild() was called was:
Overlay-[LabeledGlobalKey<OverlayState>#c308e]
state: OverlayState#afeec(entries: [OverlayEntry#f6445(opaque: true; maintainState: false), OverlayEntry#da796(opaque: false; maintainState: true), OverlayEntry#b90fb(opaque: false; maintainState: true)])
The widget which was currently being built when the offending call was made was: KeyedSubtree-[GlobalKey#676a9]
The relevant error-causing widget was
Scaffold
lib/main.dart:49
When the exception was thrown, this was the stack
#0 Element.markNeedsBuild.<anonymous closure> package:flutter/…/widgets/framework.dart:4549
#1 Element.markNeedsBuild package:flutter/…/widgets/framework.dart:4564
#2 State.setState package:flutter/…/widgets/framework.dart:1134
#3 OverlayState.insert package:flutter/…/widgets/overlay.dart:408
#4 MarkerGenerator.addOverlay package:sample_app/…/marker_generator.dart:41
#5 MarkerGenerator.afterFirstLayout package:sample_app/…/marker_generator.dart:26
#6 MarkerGenerator.generate package:sample_app/…/marker_generator.dart:21
#7 _MapScreenState.initState package:sample_app/…/s.dart:252
#8 StatefulElement._firstBuild package:flutter/…/widgets/framework.dart:5015
#9 ComponentElement.mount package:flutter/…/widgets/framework.dart:4853
... Normal element mounting (25 frames)
#34 Element.inflateWidget package:flutter/…/widgets/framework.dart:3863
#35 MultiChildRenderObjectElement.inflateWidget package:flutter/…/widgets/framework.dart:6435
#36 MultiChildRenderObjectElement.mount package:flutter/…/widgets/framework.dart:6447
... Normal element mounting (379 frames)
#415 Element.inflateWidget package:flutter/…/widgets/framework.dart:3863
#416 MultiChildRenderObjectElement.inflateWidget package:flutter/…/widgets/framework.dart:6435
#417 MultiChildRenderObjectElement.mount package:flutter/…/widgets/framework.dart:6447
... Normal element mounting (422 frames)
#839 Element.inflateWidget package:flutter/…/widgets/framework.dart:3863
#840 Element.updateChild package:flutter/…/widgets/framework.dart:3592
#841 RenderObjectToWidgetElement._rebuild package:flutter/…/widgets/binding.dart:1195
#842 RenderObjectToWidgetElement.mount package:flutter/…/widgets/binding.dart:1164
#843 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> package:flutter/…/widgets/binding.dart:1111
#844 BuildOwner.buildScope package:flutter/…/widgets/framework.dart:2605
#845 RenderObjectToWidgetAdapter.attachToRenderTree package:flutter/…/widgets/binding.dart:1110
#846 WidgetsBinding.attachRootWidget package:flutter/…/widgets/binding.dart:945
#847 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> package:flutter/…/widgets/binding.dart:925
(elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch)
════════════════════════════════════════════════════════════════════════════════
E/SurfaceSyncer(14034): Failed to find sync for id=0
W/Parcel (14034): Expecting binder but got null!