[go: nahoru, domu]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve error message when adding null child to RenderBox #19226

Closed
matthew-carroll opened this issue Jul 10, 2018 · 5 comments
Closed

Improve error message when adding null child to RenderBox #19226

matthew-carroll opened this issue Jul 10, 2018 · 5 comments
Labels
a: error message Error messages from the Flutter framework a: quality A truly polished experience framework flutter/packages/flutter repository. See also f: labels.

Comments

@matthew-carroll
Copy link
Contributor
matthew-carroll commented Jul 10, 2018

I was working on a RenderBox subclass that takes in 2 optional children into its constructor. I forgot to check for null and therefore I was effectively calling addChild(null). I received the following error which does not at all represent the issue. An error message should be provided that explains a null RenderBox cannot be added as a child.

flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building Container(bg: BoxDecoration(color: Color(0xffffffff))):
flutter: A RenderObject cannot be inserted after itself.
flutter: 'package:flutter/src/rendering/object.dart': Failed assertion: line 2835 pos 12: 'child != after'
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter:   https://github.com/flutter/flutter/issues/new
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2      __RenderCupertinoDialog&RenderBox&ContainerRenderObjectMixin.insert (package:flutter/src/rendering/object.dart)
flutter: #3      __RenderCupertinoDialog&RenderBox&ContainerRenderObjectMixin.add (package:flutter/src/rendering/object.dart:2844:5)
flutter: #4      new _RenderCupertinoDialog (package:flutter/src/cupertino/dialog.dart:318:7)
flutter: #5      _CupertinoDialogRenderWidget.createRenderObject (package:flutter/src/cupertino/dialog.dart:278:16)
flutter: #6      RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4276:28)
flutter: #7      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4755:11)
flutter: #8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #9      Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #10     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #12     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #14     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #15     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #16     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #18     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #19     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #24     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #25     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #27     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #28     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #30     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #32     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #33     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #34     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #35     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #36     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #37     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #38     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #39     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #41     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #42     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #43     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #44     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #45     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #46     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #47     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #48     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #49     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #50     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #51     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #52     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #53     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #54     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #55     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #56     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #57     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #58     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #59     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #60     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #62     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #63     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #64     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #65     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #66     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #67     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #68     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #69     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #70     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #71     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #72     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #73     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #74     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #75     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #76     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #77     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #78     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #79     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #80     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #81     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #82     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #83     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #84     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #85     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #86     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #87     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #88     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #89     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #90     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #91     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #92     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #93     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #94     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #95     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #96     Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #97     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #98     Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #99     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #100    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3769:11)
flutter: #101    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #102    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #103    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #104    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #105    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #106    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #107    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #108    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #109    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #110    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #111    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #112    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #113    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #114    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #115    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #116    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #117    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #118    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #119    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3769:11)
flutter: #120    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #121    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #122    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #123    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #124    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #125    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #126    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #127    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #128    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #129    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4654:14)
flutter: #130    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #131    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #132    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #133    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #134    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #135    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #136    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #137    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #138    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #139    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #140    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #141    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3769:11)
flutter: #142    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #143    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #144    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #145    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #146    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #147    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3622:5)
flutter: #148    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3769:11)
flutter: #149    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
flutter: #150    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
flutter: #151    Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
flutter: #152    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4437:32)
flutter: #153    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4769:17)
flutter: #154    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #155    _TheatreElement.update (package:flutter/src/widgets/overlay.dart:507:16)
flutter: #156    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #157    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #158    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #159    StatefulElement.update (package:flutter/src/widgets/framework.dart:3799:5)
flutter: #160    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #161    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #162    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #163    ProxyElement.update (package:flutter/src/widgets/framework.dart:3909:5)
flutter: #164    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #165    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4661:14)
flutter: #166    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #167    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #168    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #169    StatefulElement.update (package:flutter/src/widgets/framework.dart:3799:5)
flutter: #170    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #171    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4661:14)
flutter: #172    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #173    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4661:14)
flutter: #174    Element.updateChild (package:flutter/src/widgets/framework.dart:2699:15)
flutter: #175    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3653:16)
flutter: #176    Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #177    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2242:33)
flutter: #178    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:626:20)
flutter: #179    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
flutter: #180    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
flutter: #181    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
flutter: #182    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
flutter: #183    _invoke (dart:ui/hooks.dart:120:13)
flutter: #184    _drawFrame (dart:ui/hooks.dart:109:3)
flutter: (elided 2 frames from class _AssertionError)
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
@zoechi zoechi added the framework flutter/packages/flutter repository. See also f: labels. label Jul 11, 2018
@goderbauer goderbauer added the a: quality A truly polished experience label Jan 2, 2019
@zoechi zoechi added this to the Goals milestone Jan 20, 2019
@goderbauer
Copy link
Member

/cc @Piinks

@Piinks Piinks added the a: error message Error messages from the Flutter framework label Feb 27, 2020
@Piinks
Copy link
Contributor
Piinks commented Feb 27, 2020

Hey @matthew-carroll 👋
I think this has already been fixed in #37187
If you can reproduce the error message, let me know! :)

@Piinks Piinks added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Feb 27, 2020
@matthew-carroll
Copy link
Contributor Author

We'd have to go back to 2018 me to verify :)

If you think it's resolved then feel free to close the issue.

@no-response no-response bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Feb 28, 2020
@Piinks
Copy link
Contributor
Piinks commented Feb 28, 2020

We'd have to go back to 2018 me to verify :)

If you think it's resolved then feel free to close the issue.

Sounds good to me! Thanks!

@Piinks Piinks closed this as completed Feb 28, 2020
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: error message Error messages from the Flutter framework a: quality A truly polished experience framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

No branches or pull requests

4 participants