6

I am seeing this error '_elements.contains(element)': is not true.for the past two days in my flutter project, this was working absolutely fine since the beginning. I am sorry to say this but I have no clue regarding this error but i think i am missing something which is causing this error. Also, when I hot reload the same page the layout is populated, but throws the exceptions.

Intermittently this was also showing Duplicate GlobalKeys() detected, but this wasn't the case in the beginning.

Please can someone help me if they stumbled upon these errors before. I couldn't really write an example to reproduce the same problem. Many thanks.

I have given the error details as follows:

Performing hot reload...
I/flutter (22248): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY 
╞═══════════════════════════════════════════════════════════
I/flutter (22248): The following assertion was thrown building 
TickerMode(mode: disabled):
I/flutter (22248): 'package:flutter/src/widgets/framework.dart': Failed 
assertion: line 1766 pos 12:
I/flutter (22248): '_elements.contains(element)': is not true.
I/flutter (22248): 
I/flutter (22248): Either the assertion indicates an error in the framework 
itself, or we should provide substantially
I/flutter (22248): more information in this error message to help you 
determine and fix the underlying cause.
I/flutter (22248): In either case, please report this assertion by filing a 
bug on GitHub:
I/flutter (22248):   https://github.com/flutter/flutter/issues/new
I/flutter (22248): 
I/flutter (22248): When the exception was thrown, this was the stack:
I/flutter (22248): #2      _InactiveElements.remove 
 (package:flutter/src/widgets/framework.dart:1766:12)
I/flutter (22248): #3      Element._retakeInactiveElement 
(package:flutter/src/widgets/framework.dart:2850:29)
I/flutter (22248): #4      Element.inflateWidget 
(package:flutter/src/widgets/framework.dart:2873:32)
I/flutter (22248): #5      Element.updateChild 
(package:flutter/src/widgets/framework.dart:2688:12)
I/flutter (22248): #6      ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #7      Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #8      ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5)
I/flutter (22248): #9      Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #10     RenderObjectElement.updateChildren 
(package:flutter/src/widgets/framework.dart:4262:32)
I/flutter (22248): #11     _TheatreElement.update 
(package:flutter/src/widgets/overlay.dart:508:17)
I/flutter (22248): #12     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #13     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #14     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #15     StatefulElement.update 
(package:flutter/src/widgets/framework.dart:3682:5)
I/flutter (22248): #16     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #17     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #18     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #19     ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5)
I/flutter (22248): #20     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #21     SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14)
I/flutter (22248): #22     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #23     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #24     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #25     StatefulElement.update 
(package:flutter/src/widgets/framework.dart:3682:5)
I/flutter (22248): #26     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #27     SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14)
I/flutter (22248): #28     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #29     SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14)
I/flutter (22248): #30     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #31     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #32     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #33     StatefulElement.update 
(package:flutter/src/widgets/framework.dart:3682:5)
I/flutter (22248): #34     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #35     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #36     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #37     ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5)
I/flutter (22248): #38     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #39     SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14)
I/flutter (22248): #40     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #41     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #42     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #43     StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5)
I/flutter (22248): #44     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #45     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
I/flutter (22248): #46     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #47     StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5)
I/flutter (22248): #48     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #49     ComponentElement.performRebuild  
(package:flutter/src/widgets/framework.dart:3557:16)
 I/flutter (22248): #50     Element.rebuild 
 (package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #51     StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5)
I/flutter (22248): #52     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
 I/flutter (22248): #53     ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16)
 I/flutter (22248): #54     Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #55     StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5)
I/flutter (22248): #56     Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15)
I/flutter (22248): #57     ComponentElement.performRebuild                                              
 (package:flutter/src/widgets/framework.dart:3557:16)
 I/flutter (22248): #58     Element.rebuild 
 (package:flutter/src/widgets/framework.dart:3446:5)
I/flutter (22248): #59     ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5)
 I/flutter (22248): #60     Element.updateChild 
 (package:flutter/src/widgets/framework.dart:2677:15)
  I/flutter (22248): #61     ComponentElement.performRebuild 
 (package:flutter/src/widgets/framework.dart:3557:16)
 I/flutter (22248): #62     Element.rebuild 
 (package:flutter/src/widgets/framework.dart:3446:5)
 I/flutter (22248): #63     ProxyElement.update 
 (package:flutter/src/widgets/framework.dart:3792:5)
  I/flutter (22248): #64     Element.updateChild 
  (package:flutter/src/widgets/framework.dart:2677:15)
  I/flutter (22248): #65     ComponentElement.performRebuild 
  (package:flutter/src/widgets/framework.dart:3557:16)
          I/flutter (22248): #66     Element.rebuild 
   (package:flutter/src/widgets/framework.dart:3446:5)
  I/flutter (22248): #67     StatefulElement.update 
  (package:flutter/src/widgets/framework.dart:3682:5)
  I/flutter (22248): #68     Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15)
  I/flutter (22248): #69     ComponentElement.performRebuild 
  (package:flutter/src/widgets/framework.dart:3557:16)
    I/flutter (22248): #70     Element.rebuild 
   (package:flutter/src/widgets/framework.dart:3446:5)
    I/flutter (22248): #71     ProxyElement.update 
  (package:flutter/src/widgets/framework.dart:3792:5)
  I/flutter (22248): #72     Element.updateChild 
  (package:flutter/src/widgets/framework.dart:2677:15)
   I/flutter (22248): #73     ComponentElement.performRebuild 
  (package:flutter/src/widgets/framework.dart:3557:16)
  I/flutter (22248): #74     Element.rebuild 
  (package:flutter/src/widgets/framework.dart:3446:5)
  I/flutter (22248): #75     StatefulElement.update 
 (package:flutter/src/widgets/framework.dart:3682:5)
  I/flutter (22248): #76     Element.updateChild 
 (package:flutter/src/widgets/framework.dart:2677:15)
 I/flutter (22248): #77     ComponentElement.performRebuild 
  (package:flutter/src/widgets/framework.dart:3557:16)
  I/flutter (22248): #78     Element.rebuild 
  (package:flutter/src/widgets/framework.dart:3446:5)
   I/flutter (22248): #79     ProxyElement.update 
  (package:flutter/src/widgets/framework.dart:3792:5)
   I/flutter (22248): #80     Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15)
 I/flutter (22248): #81     ComponentElement.performRebuild 
     (package:flutter/src/widgets/framework.dart:3557:16)
    I/flutter (22248): #82     Element.rebuild 
     (package:flutter/src/widgets/framework.dart:3446:5)
      I/flutter (22248): #83     ProxyElement.update 
     (package:flutter/src/widgets/framework.dart:3792:5)
   I/flutter (22248): #84     Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15)
   I/flutter (22248): #85     ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16)
       I/flutter (22248): #86     Element.rebuild 
 (package:flutter/src/widgets/framework.dart:3446:5)
  I/flutter (22248): #87     StatelessElement.update 
     (package:flutter/src/widgets/framework.dart:3607:5)
   I/flutter (22248): #88     Element.updateChild 
  (package:flutter/src/widgets/framework.dart:2677:15)
     I/flutter (22248): #89     ComponentElement.performRebuild 
  (package:flutter/src/widgets/framework.dart:3557:16)
   I/flutter (22248): #90     Element.rebuild 
  (package:flutter/src/widgets/framework.dart:3446:5)
     I/flutter (22248): #91     StatefulElement.update 
  (package:flutter/src/widgets/framework.dart:3682:5)
  I/flutter (22248): #92     Element.updateChild 
  (package:flutter/src/widgets/framework.dart:2677:15)
  I/flutter (22248): #93     ComponentElement.performRebuild 
  (package:flutter/src/widgets/framework.dart:3557:16)
   I/flutter (22248): #94     Element.rebuild 
  (package:flutter/src/widgets/framework.dart:3446:5)
  I/flutter (22248): #95     ProxyElement.update 
    (package:flutter/src/widgets/framework.dart:3792:5)
   I/flutter (22248): #96     Element.updateChild 
   (package:flutter/src/widgets/framework.dart:2677:15)
   I/flutter (22248): #97     ComponentElement.performRebuild 
   (package:flutter/src/widgets/framework.dart:3557:16)
    I/flutter (22248): #98     Element.rebuild 
   (package:flutter/src/widgets/framework.dart:3446:5)
    I/flutter (22248): #99     BuildOwner.buildScope 
    (package:flutter/src/widgets/framework.dart:2246:33)
      I/flutter (22248): #100    












      BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&Renderer
     Binding&WidgetsBinding.drawFrame 
      (package:flutter/src/widgets/binding.dart:580:20)
       I/flutter (22248): #101    





    BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&Renderer
  Binding._handlePersistentFrameCallback 
   (package:flutter/src/rendering/binding.dart:200:5)
    I/flutter (22248): #102    
    BindingBase&SchedulerBinding._invokeFrameCallback 
   (package:flutter/src/scheduler/binding.dart:713:15)
   I/flutter (22248): #103    BindingBase&SchedulerBinding.handleDrawFrame 
     (package:flutter/src/scheduler/binding.dart:649:9)
     I/flutter (22248): #104    




   BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&Renderer
   Binding.scheduleWarmUpFrame.<anonymous closure> 
    (package:flutter/src/rendering/binding.dart:286:20)
   I/flutter (22248): #106    _Timer._runTimers (dart:isolate-
      patch/dart:isolate/timer_impl.dart:367)
      I/flutter (22248): #107    _Timer._handleMessage (dart:isolate-
     patch/dart:isolate/timer_impl.dart:401)
     I/flutter (22248): #108    _RawReceivePortImpl._handleMessage 
       (dart:isolate-patch/dart:isolate/isolate_patch.dart:163)
         I/flutter (22248): (elided 3 frames from class _AssertionError and 
       package dart:async-patch)
       I/flutter (22248): 

  ══════════════════════════════════════════════════════════════════════════
  ══════════════════════════
  Reloaded 0 of 492 libraries in 823ms.

I have included a sample example of what i am trying to do in my application.

main.dart

import 'package:flutter/rendering.dart';
import 'package:flutter/material.dart';
import 'package:untitled3/secondwidget.dart';

void main() {
  runApp(
    new Example(),
  );
}

class Example extends StatefulWidget {
  @override
  _ExampleState createState() => new _ExampleState();
}

class _ExampleState extends State<Example> {
  int noOfBranches;

  @override
  void initState() {
    super.initState();
    getCount();
  }

  void getCount() {
    print('list builder count is ${noOfBranches}');
  }

  @override
  Widget build(BuildContext context) {
    setState(() {
      noOfBranches = 2;
    });

    return new MaterialApp(
      home: new Scaffold(
        body: new ListView.builder(
        itemCount: noOfBranches,
        itemBuilder: (BuildContext context, int index) {
          return new Card(
            child: new FlatButton(
                onPressed: (() {
                  Navigator.push(
                      context,
                      new MaterialPageRoute(
                          builder: (_) => new SecondWidget()));
                }),
                child: new Text('Next Widget')),
          );
        }),
      ),
    );
  }
 }

secondwidget.dart

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

  class SecondWidget extends StatefulWidget {
  @override
 _SecondWidgetState createState() => new _SecondWidgetState();
 }

 class _SecondWidgetState extends State<SecondWidget> {
  @override
  Widget build(BuildContext context) {
    return new Container(
      child: new Text('Second Widget'),
   );
  }
 }   

I don't see the error in my application if setState() declare as given in the example main.dart file inside the

@override
   Widget build(BuildContext context) {
     setState(() {
    noOfBranches = 2;
      });
      .....
      }
 

but I only see this error if I declare the setState() inside the getCount() function.

I am not so sure why this is the case.

I am actually stuck on this error for two days and any help would be greatly appreciated.

Many Thanks, Mahi

Ichigo Kurosaki
  • 3,765
  • 8
  • 41
  • 56
Mahi
  • 5,726
  • 13
  • 31
  • 41
  • We'd need more information for that. Adding a bit of code would be great. – Rémi Rousselet Oct 13 '17 at 11:05
  • Thanks for your reply @Darky. Aye, you're right it would be great to have the code but Its kind of a lengthy code which I may not be able to post here. So, I would be grateful if you could think of any scenarios that crop up this error. – Mahi Oct 13 '17 at 13:03
  • Can you at least try to explain, what you are doing? From the error message alone it is pretty hard to help you... – Rainer Wittmann Oct 13 '17 at 14:43
  • thank you @RainerWittmann, I am actually trying to pull the data from the firebase database and feed this data to the ListView.builder in Scaffold body but I think I've figured out what was causing the problem as per this thread at GitHub: https://github.com/flutter/flutter/issues/12465 – Mahi Oct 16 '17 at 08:33
  • But, Unfortunately I've no solved it yet. What's actually happening in my app is the State where I am building the ListView I have used the setState() to initialize a variable and when the floatingActionButton is clicked I am calling another Widget using the code 'Navigator.push(context, new MaterialPageRoute(builder: (_) => new AddNewBranch(),),);' but the context in this code is modified (as I have called the setState() method) and I am guessing this is what is causing the issue. But, I need to call the setState() as well to initialize a variable as per the data received from firebase. – Mahi Oct 16 '17 at 08:43

2 Answers2

0

I think I kinda solved the error by declaring the setState() inside the

    @override
  Widget build(BuildContext context) {
    setState(() {
      noOfBranches = 2;
    });
    print('noof branches inside widget build = $noOfBranches');
.....
}

Now the app is running absolutely fine without any problems. But, I would be grateful if there are any more suggestions as I am new to programming and would be very very happy to learn more. The only problem was the setState() was modifying the context and when clicked on the button to call another widget it was throwing up with this error message.

Many Thanks, Mahi.

Mahi
  • 5,726
  • 13
  • 31
  • 41
0

Why don't you set your noOfBranches variable not in the initState method?

@override
void initState() {
  super.initState();
  noOfBranches = 2;
}
Rainer Wittmann
  • 7,528
  • 4
  • 20
  • 34
  • Thanks Rainer, I did try that, but since the initState() is only called once the widget is introduced into the tree the next time when I come back and click the button again it was still showing the error as '_dependents.isEmpty': is not true. and this solution seems to work fine for my case. – Mahi Oct 16 '17 at 13:33