Skip to content

non-duplicate key assert when duplicate keys #6121

Closed
@apwilson

Description

@apwilson
import 'dart:async';

import 'package:flutter/widgets.dart';

final GlobalKey _kKey = new GlobalKey();
Future main() async {
  runApp(new Block(
      children: new List<Widget>.generate(
          3,
          (_) => new Padding(
              padding: const EdgeInsets.all(8.0),
              child: new Container(
                  key: _kKey,
                  width: 100.0,
                  height: 100.0,
                  decoration: new BoxDecoration(
                      backgroundColor: new Color(0xFFFFFF00)))))));
}

Assert:

10:35:01.044: I/flutter : ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
10:35:01.055: I/flutter : The following assertion was thrown building RawGestureDetector([GlobalKey 273613476]; state:
10:35:01.058: I/flutter : RawGestureDetectorState(304216675; gestures: vertical drag; behavior: opaque)):
10:35:01.062: I/flutter : scheduleBuildFor() called for a widget for which a build was already scheduled.
10:35:01.065: I/flutter : The method was called for the following element:
10:35:01.068: I/flutter :   DecoratedBox(dirty; renderObject: RenderDecoratedBox NEEDS-LAYOUT DETACHED)
10:35:01.072: I/flutter : The current dirty list consists of:
10:35:01.075: I/flutter :   [DecoratedBox(dirty; renderObject: RenderDecoratedBox NEEDS-LAYOUT DETACHED)]
10:35:01.078: I/flutter : This usually indicates that a widget was rebuilt outside the build phase (thus marking the element
10:35:01.082: I/flutter : as clean even though it is still in the dirty list). This should not be possible and is probably
10:35:01.085: I/flutter : caused by a bug in the widgets framework. Please report it:
10:35:01.087: I/flutter : https://github.com/flutter/flutter/issues/new
10:35:01.090: I/flutter : To debug this issue, consider setting the debugPrintScheduleBuildForStacks and
10:35:01.093: I/flutter : debugPrintBuildDirtyElements flags to true and looking for a call to scheduleBuildFor for a widget
10:35:01.096: I/flutter : that is labeled "ALREADY IN LIST".
10:35:01.243: I/flutter :
10:35:01.247: I/flutter : When the exception was thrown, this was the stack:
10:35:01.272: I/flutter : #0      BuildOwner.scheduleBuildFor.<anonymous closure> (package:flutter/src/widgets/framework.dart:1531:9)
10:35:01.275: I/flutter : #2      BuildOwner.scheduleBuildFor (package:flutter/src/widgets/framework.dart:1527:12)
10:35:01.278: I/flutter : #3      BuildableElement.markNeedsBuild (package:flutter/src/widgets/framework.dart:2538:11)
10:35:01.282: I/flutter : #4      BuildableElement.dependenciesChanged (package:flutter/src/widgets/framework.dart:2584:5)
10:35:01.285: I/flutter : #5      BuildableElement.activate (package:flutter/src/widgets/framework.dart:2599:7)
10:35:01.289: I/flutter : #6      Element._activateRecursively (package:flutter/src/widgets/framework.dart:2194:13)
10:35:01.292: I/flutter : #7      SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:3424:14)
10:35:01.295: I/flutter : #8      Element._activateRecursively (package:flutter/src/widgets/framework.dart:2196:13)
10:35:01.298: I/flutter : #9      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:2690:14)
10:35:01.301: I/flutter : #10     Element._activateRecursively (package:flutter/src/widgets/framework.dart:2196:13)
10:35:01.305: I/flutter : #11     Element._activateWithParent (package:flutter/src/widgets/framework.dart:2187:5)
10:35:01.307: I/flutter : #12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2131:18)
10:35:01.310: I/flutter : #13     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.313: I/flutter : #14     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:3436:14)
10:35:01.316: I/flutter : #15     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.319: I/flutter : #16     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:3532:32)
10:35:01.322: I/flutter : #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.325: I/flutter : #18     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.327: I/flutter : #19     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:3436:14)
10:35:01.330: I/flutter : #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.333: I/flutter : #21     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.336: I/flutter : #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:3436:14)
10:35:01.339: I/flutter : #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.342: I/flutter : #24     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.346: I/flutter : #25     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:3436:14)
10:35:01.349: I/flutter : #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.352: I/flutter : #27     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.355: I/flutter : #28     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:3436:14)
10:35:01.358: I/flutter : #29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.361: I/flutter : #30     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.364: I/flutter : #31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2678:16)
10:35:01.367: I/flutter : #32     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2567:5)
10:35:01.370: I/flutter : #33     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:2652:5)
10:35:01.373: I/flutter : #34     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:2768:22)
10:35:01.376: I/flutter : #35     ComponentElement.mount (package:flutter/src/widgets/framework.dart:2647:5)
10:35:01.379: I/flutter : #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.383: I/flutter : #37     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.386: I/flutter : #38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2678:16)
10:35:01.389: I/flutter : #39     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2567:5)
10:35:01.392: I/flutter : #40     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:2652:5)
10:35:01.395: I/flutter : #41     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:2768:22)
10:35:01.399: I/flutter : #42     ComponentElement.mount (package:flutter/src/widgets/framework.dart:2647:5)
10:35:01.402: I/flutter : #43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.405: I/flutter : #44     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.409: I/flutter : #45     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2678:16)
10:35:01.412: I/flutter : #46     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2567:5)
10:35:01.415: I/flutter : #47     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:2652:5)
10:35:01.418: I/flutter : #48     ComponentElement.mount (package:flutter/src/widgets/framework.dart:2647:5)
10:35:01.421: I/flutter : #49     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.424: I/flutter : #50     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.428: I/flutter : #51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2678:16)
10:35:01.431: I/flutter : #52     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2567:5)
10:35:01.434: I/flutter : #53     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:2652:5)
10:35:01.437: I/flutter : #54     ComponentElement.mount (package:flutter/src/widgets/framework.dart:2647:5)
10:35:01.440: I/flutter : #55     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2139:14)
10:35:01.444: I/flutter : #56     Element.updateChild (package:flutter/src/widgets/framework.dart:1970:12)
10:35:01.447: I/flutter : #57     RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:518:16)
10:35:01.449: I/flutter : #58     RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:489:5)
10:35:01.453: I/flutter : #59     RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:435:17)
10:35:01.456: I/flutter : #60     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:1649:19)
10:35:01.459: I/flutter : #61     RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:434:13)
10:35:01.462: I/flutter : #62     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:336:7)
10:35:01.465: I/flutter : #63     runApp (package:flutter/src/widgets/binding.dart:367:7)
10:35:01.468: I/flutter : #64     main.<main_async_body> (/data/user/0/com.google.fuchsia.armadillo/cache/armadillowvraes/lib/main.dart:11:3)
10:35:01.471: I/flutter : (elided 4 frames from class _AssertionError and package dart:async)
10:35:01.475: I/flutter : ════════════════════════════════════════════════════════════════════════════════════════════════════

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions