-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Closed
Copy link
Labels
c: crashStack traces logged to the consoleStack traces logged to the consolefound in release: 3.7Found to occur in 3.7Found to occur in 3.7found in release: 3.8Found to occur in 3.8Found to occur in 3.8frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer version
Description
Steps to Reproduce
- Execute
flutter runon the code sample - Click FloatingActionButton
Code sample
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final GlobalKey _globalKey = GlobalKey();
bool _updated = false;
@override
Widget build(BuildContext context) {
late List<Widget> widgets;
if (_updated) {
widgets = [
const Text("1"),
const Text("3"),
SizedBox(child: Text("2", key: _globalKey)),
];
} else {
widgets = [
const Text("1"),
Text("2", key: _globalKey),
const Text("3"),
];
}
return MaterialApp(
home: Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: widgets,
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() => _updated = true);
},
tooltip: 'Run',
child: const Icon(Icons.play_arrow),
),
),
);
}
}
Logs
Restarted application in 275ms.
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown building _BodyBuilder:
'package:flutter/src/widgets/framework.dart': Failed assertion: line 6320 pos 12: '_children.contains(child)': is not true.
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=2_bug.md
The relevant error-causing widget was
Scaffold
When the exception was thrown, this was the stack
#2 MultiChildRenderObjectElement.forgetChild
#3 Element._retakeInactiveElement
... Normal element mounting (4 frames)
#7 Element.inflateWidget
#8 MultiChildRenderObjectElement.inflateWidget
#9 Element.updateChild
#10 RenderObjectElement.updateChildren
#11 MultiChildRenderObjectElement.update
#12 Element.updateChild
#13 SingleChildRenderObjectElement.update
#14 Element.updateChild
#15 ComponentElement.performRebuild
#16 Element.rebuild
#17 StatelessElement.update
#18 Element.updateChild
#19 ComponentElement.performRebuild
#20 Element.rebuild
#21 ProxyElement.update
#22 Element.updateChild
#23 ComponentElement.performRebuild
#24 Element.rebuild
#25 ProxyElement.update
#26 Element.updateChild
#27 RenderObjectElement.updateChildren
#28 MultiChildRenderObjectElement.update
#29 Element.updateChild
#30 ComponentElement.performRebuild
#31 StatefulElement.performRebuild
#32 Element.rebuild
#33 StatefulElement.update
#34 Element.updateChild
#35 ComponentElement.performRebuild
#36 Element.rebuild
#37 ProxyElement.update
#38 Element.updateChild
#39 ComponentElement.performRebuild
#40 StatefulElement.performRebuild
#41 Element.rebuild
#42 StatefulElement.update
#43 Element.updateChild
#44 SingleChildRenderObjectElement.update
#45 Element.updateChild
#46 ComponentElement.performRebuild
#47 Element.rebuild
#48 ProxyElement.update
#49 Element.updateChild
#50 SingleChildRenderObjectElement.update
#51 Element.updateChild
#52 ComponentElement.performRebuild
#53 StatefulElement.performRebuild
#54 Element.rebuild
#55 StatefulElement.update
#56 Element.updateChild
#57 ComponentElement.performRebuild
#58 StatefulElement.performRebuild
#59 Element.rebuild
#60 StatefulElement.update
#61 Element.updateChild
#62 ComponentElement.performRebuild
#63 Element.rebuild
#64 ProxyElement.update
#65 Element.updateChild
#66 ComponentElement.performRebuild
#67 Element.rebuild
#68 ProxyElement.update
#69 Element.updateChild
#70 ComponentElement.performRebuild
#71 StatefulElement.performRebuild
#72 Element.rebuild
#73 StatefulElement.update
#74 Element.updateChild
#75 ComponentElement.performRebuild
#76 Element.rebuild
#77 ProxyElement.update
#78 Element.updateChild
#79 ComponentElement.performRebuild
#80 StatefulElement.performRebuild
#81 Element.rebuild
#82 StatefulElement.update
#83 Element.updateChild
#84 SingleChildRenderObjectElement.update
#85 Element.updateChild
#86 ComponentElement.performRebuild
#87 Element.rebuild
#88 StatelessElement.update
#89 Element.updateChild
#90 SingleChildRenderObjectElement.update
#91 Element.updateChild
#92 SingleChildRenderObjectElement.update
#93 Element.updateChild
#94 ComponentElement.performRebuild
#95 StatefulElement.performRebuild
#96 Element.rebuild
#97 StatefulElement.update
#98 Element.updateChild
#99 RenderObjectElement.updateChildren
#100 MultiChildRenderObjectElement.update
#101 Element.updateChild
#102 ComponentElement.performRebuild
#103 StatefulElement.performRebuild
#104 Element.rebuild
#105 StatefulElement.update
#106 Element.updateChild
#107 SingleChildRenderObjectElement.update
#108 Element.updateChild
#109 ComponentElement.performRebuild
#110 StatefulElement.performRebuild
#111 Element.rebuild
#112 StatefulElement.update
#113 Element.updateChild
#114 SingleChildRenderObjectElement.update
#115 Element.updateChild
#116 ComponentElement.performRebuild
#117 StatefulElement.performRebuild
#118 Element.rebuild
#119 StatefulElement.update
#120 Element.updateChild
#121 SingleChildRenderObjectElement.update
#122 Element.updateChild
#123 ComponentElement.performRebuild
#124 StatefulElement.performRebuild
#125 Element.rebuild
#126 StatefulElement.update
#127 Element.updateChild
#128 ComponentElement.performRebuild
#129 Element.rebuild
#130 StatelessElement.update
#131 Element.updateChild
#132 ComponentElement.performRebuild
#133 StatefulElement.performRebuild
#134 Element.rebuild
#135 StatefulElement.update
#136 Element.updateChild
#137 SingleChildRenderObjectElement.update
#138 Element.updateChild
#139 SingleChildRenderObjectElement.update
#140 Element.updateChild
#141 ComponentElement.performRebuild
#142 Element.rebuild
#143 ProxyElement.update
#144 _InheritedNotifierElement.update
#145 Element.updateChild
#146 SingleChildRenderObjectElement.update
#147 Element.updateChild
#148 ComponentElement.performRebuild
#149 StatefulElement.performRebuild
#150 Element.rebuild
#151 StatefulElement.update
#152 Element.updateChild
#153 ComponentElement.performRebuild
#154 Element.rebuild
#155 ProxyElement.update
#156 Element.updateChild
#157 ComponentElement.performRebuild
#158 Element.rebuild
#159 ProxyElement.update
#160 Element.updateChild
#161 ComponentElement.performRebuild
#162 StatefulElement.performRebuild
#163 Element.rebuild
#164 StatefulElement.update
#165 Element.updateChild
#166 ComponentElement.performRebuild
#167 Element.rebuild
#168 StatelessElement.update
#169 Element.updateChild
#170 ComponentElement.performRebuild
#171 Element.rebuild
#172 StatelessElement.update
#173 Element.updateChild
#174 SingleChildRenderObjectElement.update
#175 Element.updateChild
#176 ComponentElement.performRebuild
#177 Element.rebuild
#178 ProxyElement.update
#179 Element.updateChild
#180 ComponentElement.performRebuild
#181 Element.rebuild
#182 ProxyElement.update
#183 Element.updateChild
#184 ComponentElement.performRebuild
#185 StatefulElement.performRebuild
#186 Element.rebuild
#187 StatefulElement.update
#188 Element.updateChild
#189 ComponentElement.performRebuild
#190 StatefulElement.performRebuild
#191 Element.rebuild
#192 StatefulElement.update
#193 Element.updateChild
#194 ComponentElement.performRebuild
#195 StatefulElement.performRebuild
#196 Element.rebuild
#197 BuildOwner.buildScope
#198 WidgetsBinding.drawFrame
#199 RendererBinding._handlePersistentFrameCallback
#200 SchedulerBinding._invokeFrameCallback
#201 SchedulerBinding.handleDrawFrame
#202 SchedulerBinding._handleDrawFrame
#206 _invoke (dart:ui/hooks.dart:151:10)
#207 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#208 _drawFrame (dart:ui/hooks.dart:115:31)
(elided 5 frames from class _AssertionError and dart:async)
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by rendering library ═════════════════════════════════
Each child must be laid out exactly once.
The relevant error-causing widget was
Scaffold
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by scheduler library ═════════════════════════════════
Updated layout information required for RenderErrorBox#1c7ba NEEDS-LAYOUT NEEDS-PAINT to calculate semantics.
'package:flutter/src/rendering/object.dart':
Failed assertion: line 2817 pos 12: '!_needsLayout'
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by widgets library ═══════════════════════════════════
Duplicate GlobalKey detected in widget tree.
════════════════════════════════════════════════════════════════════════════════
Metadata
Metadata
Assignees
Labels
c: crashStack traces logged to the consoleStack traces logged to the consolefound in release: 3.7Found to occur in 3.7Found to occur in 3.7found in release: 3.8Found to occur in 3.8Found to occur in 3.8frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer version