Skip to content

Improve error message that occurs when using a stale context in showDialog. #12467

@JFixby

Description

@JFixby
I/flutter (15109): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (15109): The following assertion was thrown while handling a gesture:
I/flutter (15109): Looking up a deactivated widget's ancestor is unsafe.
I/flutter (15109): At this point the state of the widget's element tree is no longer stable. To safely refer to a
I/flutter (15109): widget's ancestor in its dispose() method, save a reference to the ancestor by calling
I/flutter (15109): inheritFromWidgetOfExactType() in the widget's didChangeDependencies() method.
I/flutter (15109): When the exception was thrown, this was the stack:
I/flutter (15109): #0      Element._debugCheckStateIsActiveForAncestorLoopkup.<anonymous closure> (package:flutter/src/widgets/framework.dart:3181)
I/flutter (15109): #1      Element._debugCheckStateIsActiveForAncestorLoopkup (package:flutter/src/widgets/framework.dart:3190)
I/flutter (15109): #2      Element.ancestorStateOfType (package:flutter/src/widgets/framework.dart:3232)
I/flutter (15109): #3      Navigator.of (package:flutter/src/widgets/navigator.dart:712)
I/flutter (15109): #4      AppBarFactory._showFailedToLogoutDialog.<anonymous closure> (package:van_mobile_flutter/app/r/app_bar.dart:67)
I/flutter (15109): #5      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:323)
I/flutter (15109): #6      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:375)
I/flutter (15109): #7      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102)
I/flutter (15109): #8      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149)
I/flutter (15109): #9      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:92)
I/flutter (15109): #10     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315)
I/flutter (15109): #11     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73)
I/flutter (15109): #12     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101)
I/flutter (15109): #13     BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:143)
I/flutter (15109): #14     BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121)
I/flutter (15109): #15     BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101)
I/flutter (15109): #16     BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64)
I/flutter (15109): #17     BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48)
I/flutter (15109): #18     _invoke1 (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:105)
I/flutter (15109): #19     _dispatchPointerDataPacket (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:63)
I/flutter (15109): Handler: onTap
I/flutter (15109): Recognizer:
I/flutter (15109):   TapGestureRecognizer#e28eb(debugOwner: GestureDetector, state: possible)
I/flutter (15109): ════════════════════════════════════════════════════════════════════════════════════════════════════

Make example dialog, click "OK"

$ flutter doctor
[✓] Flutter (on Linux, locale en_US.UTF-8, channel master)
    • Flutter at /home/reyer/reyer/flutter/master
    • Framework revision 0a85db2958 (4 days ago), 2017-10-06 07:13:27 +0300
    • Engine revision 459f722b86
    • Tools Dart version 1.25.0-dev.11.0

[✓] Android toolchain - develop for Android devices (Android SDK 26.0.2)
    • Android SDK at /home/reyer/Android/Sdk
    • Platform android-26, build-tools 26.0.2
    • ANDROID_HOME = /home/reyer/Android/Sdk
    • Java binary at: /home/reyer/.local/share/umake/android/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[✓] Android Studio (version 2.3)
    • Android Studio at /home/reyer/.local/share/umake/android/android-studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[✓] IntelliJ IDEA Community Edition (version 2017.2)
    • Flutter plugin version 17.0
    • Dart plugin version 172.4155.35

[✓] Connected devices
    • Moto C Plus                  • ZW222422WM    • android-arm • Android 7.0 (API 24)
    • Android SDK built for x86 64 • emulator-5554 • android-x64 • Android 6.0 (API 23) (emulator)


Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work lista: error messageError messages from the Flutter frameworkc: crashStack traces logged to the consolefound in release: 1.21Found to occur in 1.21frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work on

Type

No type

Projects

Status

Done (PR merged)

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions