Repository navigation
missing nullCheck #12068
Copy link
Copy link
Closed
Labels
frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.
Milestone
Description
I: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
I: The following assertion was thrown during a scheduler callback:
I: There are multiple heroes that share the same tag within a subtree.
I: Within each subtree for which heroes are to be animated (typically a PageRoute subtree), each Hero
I: must have a unique non-null tag.
I: In this case, multiple heroes had the tag "Instance of 'Object'".
I: When the exception was thrown, this was the stack:
I: #0 Hero._allHeroesFor.visitor.<anonymous closure> (package:flutter/src/widgets/heroes.dart:114)
I: #2 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:112)
I: #3 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #4 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #5 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #6 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #7 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4625)
I: #8 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #9 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4625)
I: #10 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #11 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #12 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #13 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #14 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #15 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #16 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #17 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #18 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #19 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #20 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #21 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #22 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #23 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #24 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #25 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #26 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #27 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #28 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #29 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #30 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #31 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #32 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #33 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #34 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #35 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #36 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #37 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #38 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #39 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #40 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #41 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #42 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #43 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #44 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #45 List.forEach (dart:core-patch/growable_array.dart:267)
I: #46 SliverMultiBoxAdaptorElement.visitChildren (package:flutter/src/widgets/sliver.dart:866)
I: #47 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #48 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4625)
I: #49 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #50 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #51 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #52 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #53 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #54 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #55 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #56 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #57 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #58 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #59 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #60 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #61 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #62 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #63 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #64 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #65 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #66 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #67 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #68 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #69 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #70 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #71 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #72 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #73 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #74 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #75 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #76 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #77 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #78 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #79 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #80 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4625)
I: #81 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #82 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #83 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #84 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #85 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #86 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #87 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #88 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #89 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #90 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4525)
I: #91 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #92 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #93 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #94 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #95 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #96 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #97 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #98 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #99 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #100 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #101 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #102 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #103 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #104 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #105 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:126)
I: #106 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3591)
I: #107 Element.visitChildElements (package:flutter/src/widgets/framework.dart:2634)
I: #108 Hero._allHeroesFor (package:flutter/src/widgets/heroes.dart:128)
I: #109 HeroController._startHeroTransition (package:flutter/src/widgets/heroes.dart:480)
I: #110 HeroController._maybeStartHeroTransition.<anonymous closure> (package:flutter/src/widgets/heroes.dart:462)
I: #111 BindingBase&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:713)
I: #112 BindingBase&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:657)
I: #113 _invoke (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:86)
I: #114 _drawFrame (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:75)
I: (elided one frame from class _AssertionError)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.
Activity
Hixie commentedon Sep 13, 2017
The given stack trace suggests there's an error in the code, not the framework. Without more details it's not clear what we can do here.
JFixby commentedon Sep 13, 2017
You can make the exception more detailed. Now it says "Something happened somewhere' which is not very informative.
JFixby commentedon Sep 13, 2017
There is no reference at all to the app code in the stack trace, so this looks like framework problem.
Hixie commentedon Sep 13, 2017
I don't know how we could really point you to the right place. We do say "here are multiple heroes that share the same tag within a subtree" and print the offending tag (in this case an object without a useful toString unfortunately).
What information can we give you that would help here? I'm eager to give you anything you can use...
JFixby commentedon Sep 13, 2017
First fix the constructor:
heroTagas@requiredStep two is to add details to the exception:
tag?.toString()to them and print out their path in the widget tree.Hixie commentedon Sep 13, 2017
Why would FloatingActionButton's hero tag be required? I don't understand.
The conflicting tag is printed in the logs already. The tags in your case are Object instances so they don't have useful toStrings.
We can try to print the Hero widget itself; I'm not sure how useful that would be in practice. Let me post a patch to do that.
JFixby commentedon Sep 13, 2017
Hero tag must be required because framework exception above says
... each Hero must have a unique non-null tag.I have no idea what is heroTag, why it is required and why it has to be unique. Also I don't know what is "Instance of 'Object'".
I can assume that
FloatingActionButtonconstructor swallows default nullheroTagand doesn't complain by throwing exception about it. From this point the framework becomes a schrödinger cat. The null circulates somewhere in the framework and gives the mysterious stack-trace above.Hixie commentedon Sep 13, 2017
I don't understand why we are talking about FloatingActionButton. Can you elaborate? What makes you think FloatingActionButton is relevant here?
Hixie commentedon Sep 13, 2017
Oh, wait, are you trying to use two FloatingActionButtons on the screen at once?
I'll post a patch to allow you to set the heroTag to null so that you can do that. In the meantime, you can just set heroTag to a different value on each FloatingActionButton if you want to do that. Generally speaking having multiple FloatingActionButtons on the screen is considered bad UI.
Hixie commentedon Sep 13, 2017
#12074
2 remaining items
Manual roll of engine 7ea9884...5b94c8a (#40275)
Roll engine from 7ea9884..3c6383f (77 commits 🔥) (#40372)
Roll engine to 6e6de94
Roll engine to 6e6de94 (#40394)
Roll engine 7ea9884..1b63444 (91 commits 🔥🔥🔥) (#40442)
Manual roll of engine 7ea9884...5b94c8a (flutter#40275)
Roll engine from 7ea9884..3c6383f (77 commits 🔥) (flutter#40372)
Roll engine to 6e6de94 (flutter#40394)
Roll engine 7ea9884..1b63444 (91 commits 🔥🔥🔥) (flutter#40442)
github-actions commentedon Sep 4, 2021
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 -vand a minimal reproduction of the issue.