markers_generator_sample icon indicating copy to clipboard operation
markers_generator_sample copied to clipboard

Sample code throws setState() or markNeedsBuild() called during build.

Open alekline opened this issue 3 years ago • 0 comments

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!

alekline avatar Oct 02 '22 19:10 alekline