flutter / flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond

Home Page:https://flutter.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Assertion failed:!_debugDuringDeviceUpdate is not true

yAeoUK opened this issue · comments

I am facing this error when using adding some widgets like ListView to a flutter web project
I never faced it before when working with android

    Exception has occurred.
"Error: Assertion failed: file:///D:/Android/flutter/packages/flutter/lib/src/rendering/mouse_tracking.dart:312:12
!_debugDuringDeviceUpdate
is not true
    at Object.throw_ [as throw] (http://localhost:23584/dart_sdk.js:4328:11)
    at Object.assertFailed (http://localhost:23584/dart_sdk.js:4275:15)
    at mouse_tracking.MouseTracker.new.[_deviceUpdatePhase] (http://localhost:23584/packages/flutter/src/rendering/layer.dart.lib.js:4940:61)
    at http://localhost:23584/packages/flutter/src/rendering/layer.dart.lib.js:4998:33
    at mouse_tracking.MouseTracker.new.[_monitorMouseConnection] (http://localhost:23584/packages/flutter/src/rendering/layer.dart.lib.js:4935:7)
    at mouse_tracking.MouseTracker.new.updateWithEvent (http://localhost:23584/packages/flutter/src/rendering/layer.dart.lib.js:4997:36)
    at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:23584/packages/flutter/src/rendering/layer.dart.lib.js:5943:45)
    at binding$5.WidgetsFlutterBinding.new.[_handlePointerEvent] (http://localhost:23584/packages/flutter/src/gestures/binding.dart.lib.js:257:14)
    at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue] (http://localhost:23584/packages/flutter/src/gestures/binding.dart.lib.js:229:35)
    at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket] (http://localhost:23584/packages/flutter/src/gestures/binding.dart.lib.js:213:65)
    at Object._invoke1 (http://localhost:23584/dart_sdk.js:175453:7)
    at _engine.EngineWindow.new.invokeOnPointerDataPacket (http://localhost:23584/dart_sdk.js:171307:15)
    at _engine.PointerBinding.__.[_onPointerData] (http://localhost:23584/dart_sdk.js:158211:24)
    at http://localhost:23584/dart_sdk.js:158585:26
    at http://localhost:23584/dart_sdk.js:158557:16
    at http://localhost:23584/dart_sdk.js:158310:11"

I looked everywhere but with no clues
thanks in advance

Share your code, please.

@yAeoUK
Please provide flutter doctor -v and a minimal complete reproducible code sample that shows the issue.
Thanks.

I'm facing the same issue on my end seen in the bug report on my repo Adding OnTap() causes exception on web builds.

It occurs when I have a ListTile that includes an onTap method is placed inside a Draggable. Once the user starts dragging the ListTile, it produces this output:

Uncaught Error: Assertion failed: file:///opt/flutter/packages/flutter/lib/src/rendering/mouse_tracking.dart:312:12
!_debugDuringDeviceUpdate
is not true
    at Object.throw_ [as throw] (errors.dart:212)
    at Object.assertFailed (errors.dart:24)
    at mouse_tracking.MouseTracker.new.[_deviceUpdatePhase] (mouse_tracking.dart:312)
    at mouse_tracking.dart:419
    at mouse_tracking.MouseTracker.new.[_monitorMouseConnection] (mouse_tracking.dart:301)
    at mouse_tracking.MouseTracker.new.updateWithEvent (mouse_tracking.dart:418)
    at binding$5.WidgetsFlutterBinding.new.dispatchEvent (binding.dart:264)
    at binding$5.WidgetsFlutterBinding.new.[_handlePointerEvent] (binding.dart:295)
    at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue] (binding.dart:240)
    at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket] (binding.dart:213)
    at Object._invoke1 (window.dart:773)
    at _engine.EngineWindow.new.invokeOnPointerDataPacket (window.dart:374)
    at _engine.PointerBinding.__.[_onPointerData] (pointer_binding.dart:129)
    at pointer_binding.dart:468
    at pointer_binding.dart:440
    at pointer_binding.dart:210

  | DartError | @ | errors.dart:163
-- | -- | -- | --
  | throw_ | @ | errors.dart:212
  | assertFailed | @ | errors.dart:24
  | [_deviceUpdatePhase] | @ | mouse_tracking.dart:312
  | (anonymous) | @ | mouse_tracking.dart:419
  | [_monitorMouseConnection] | @ | mouse_tracking.dart:301
  | updateWithEvent | @ | mouse_tracking.dart:418
  | dispatchEvent | @ | binding.dart:264
  | [_handlePointerEvent] | @ | binding.dart:295
  | [_flushPointerEventQueue] | @ | binding.dart:240
  | [_handlePointerDataPacket] | @ | binding.dart:213
  | _invoke1 | @ | window.dart:773
  | invokeOnPointerDataPacket | @ | window.dart:374
  | [_onPointerData] | @ | pointer_binding.dart:129
  | (anonymous) | @ | pointer_binding.dart:468
  | (anonymous) | @ | pointer_binding.dart:440
  | (anonymous) | @ | pointer_binding.dart:210


Minimal reproducible example

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  
  // Exception occurs only when onTap exists
  final Widget _listTile = ListTile(
    title: Text('Click'),
    onTap: () {
      print('tapped');
    },
  );

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Drag and Drop Lists',
      home: Scaffold(
        appBar: AppBar(),
        body: ListView(
          children: [
            LongPressDraggable(
              data: _listTile,
              feedback: Material(
                child: Container(
                  height: 20,
                  width: 20,
                  color: Colors.green,
                ),
              ),
              child: _listTile,
              childWhenDragging: Container(
                height: 20,
                color: Colors.pinkAccent,
              ),
            ),
          ],
        ),
      ),
    );
  }
}


Flutter doctor -v

[✓] Flutter (Channel beta, 1.22.0, on Linux, locale en_US.UTF-8)
    • Flutter version 1.22.0 at /opt/flutter
    • Framework revision d408d302e2 (13 days ago), 2020-09-29 11:49:17 -0700
    • Engine revision 5babba6c4d
    • Dart version 2.10.0

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /home/pbrink/Android/Sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /opt/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /usr/bin/google-chrome-stable

[✓] Android Studio (version 4.0)
    • Android Studio at /opt/android-studio
    • Flutter plugin version 50.0.1
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[!] IntelliJ IDEA Ultimate Edition (version 2017.3)
    • IntelliJ at /home/pbrink/Applications (Untracked)/Jetbrains/ideaIU/idea-IU-173.4548.28
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.dev/intellij-setup/#installing-the-plugins

[✓] IntelliJ IDEA Ultimate Edition (version 2019.2)
    • IntelliJ at /home/pbrink/Applications (Untracked)/Jetbrains/ideaIU/idea-IU-192.7142.36
    • Flutter plugin version 41.1.4
    • Dart plugin version 192.7402

[✓] Connected device (3 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 10 (API 29) (emulator)
    • Web Server (web)                   • web-server    • web-javascript • Flutter Tools
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 86.0.4240.75

! Doctor found issues in 1 category.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.

Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.

Same error with InkWell -- weird it doesn't care about directionality until a random drag time. I Tried to wrap my App with Directionality but it doesn't work.

errors.dart:167 Uncaught Error: No Directionality widget found.
_InkResponseStateWidget widgets require a Directionality widget ancestor.
The specific widget that could not find a Directionality ancestor was:
_InkResponseStateWidget
The ownership chain for the affected widget is: "_InkResponseStateWidget ← InkWell ← Semantics ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#bc79c ink renderer] ← NotificationListener ← CustomPaint ← ShapeBorderPaint ← PhysicalShape ← ⋯"
Typically, the Directionality widget is introduced by the MaterialApp or WidgetsApp widget at the top of your application widget tree. It determines the ambient reading direction and is used, for example, to determine how to lay out text, how to interpret "start" and "end" values, and to resolve EdgeInsetsDirectional, AlignmentDirectional, and other *Directional objects.
at Object.throw
[as throw] (errors.dart:216)
at debug.dart:271
at Object.debugCheckHasDirectionality (debug.dart:290)
at Function.of (basic.dart:117)
at ink_well._InkResponseState.new.updateHighlight (ink_well.dart:850)
at ink_well._InkResponseState.new.[_handleHoverChange] (ink_well.dart:1059)
at ink_well._InkResponseState.new.[_handleMouseEnter] (ink_well.dart:1047)
at Function._handleDeviceUpdateMouseEvents (mouse_tracking.dart:502)
at mouse_tracking.MouseTracker.new.handleDeviceUpdate (mouse_tracking.dart:510)
at mouse_tracking.dart:428
at mouse_tracking.MouseTracker.new.[_deviceUpdatePhase] (mouse_tracking.dart:306)
at mouse_tracking.dart:408
at mouse_tracking.MouseTracker.new.[_monitorMouseConnection] (mouse_tracking.dart:290)
at mouse_tracking.MouseTracker.new.updateWithEvent (mouse_tracking.dart:407)
at binding$5.WidgetsFlutterBinding.new.dispatchEvent (binding.dart:276)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerEventImmediately] (binding.dart:316)
at binding$5.WidgetsFlutterBinding.new.handlePointerEvent (binding.dart:280)
at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue] (binding.dart:238)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket] (binding.dart:221)
at Object.invoke1 (platform_dispatcher.dart:907)
at _engine.EnginePlatformDispatcher..invokeOnPointerDataPacket (platform_dispatcher.dart:170)
at _engine.PointerBinding.
.[onPointerData] (pointer_binding.dart:128)
at pointer_binding.dart:513
at pointer_binding.dart:485
at pointer_binding.dart:208
DartError @ errors.dart:167
throw
@ errors.dart:216
(anonymous) @ debug.dart:271
debugCheckHasDirectionality @ debug.dart:290
of @ basic.dart:117
updateHighlight @ ink_well.dart:850
[_handleHoverChange] @ ink_well.dart:1059
[_handleMouseEnter] @ ink_well.dart:1047
_handleDeviceUpdateMouseEvents @ mouse_tracking.dart:502
handleDeviceUpdate @ mouse_tracking.dart:510
(anonymous) @ mouse_tracking.dart:428
[_deviceUpdatePhase] @ mouse_tracking.dart:306
(anonymous) @ mouse_tracking.dart:408
[_monitorMouseConnection] @ mouse_tracking.dart:290
updateWithEvent @ mouse_tracking.dart:407
dispatchEvent @ binding.dart:276
[_handlePointerEventImmediately] @ binding.dart:316
handlePointerEvent @ binding.dart:280
[_flushPointerEventQueue] @ binding.dart:238
[_handlePointerDataPacket] @ binding.dart:221
invoke1 @ platform_dispatcher.dart:907
invokeOnPointerDataPacket @ platform_dispatcher.dart:170
[_onPointerData] @ pointer_binding.dart:128
(anonymous) @ pointer_binding.dart:513
(anonymous) @ pointer_binding.dart:485
(anonymous) @ pointer_binding.dart:208
32errors.dart:167 Uncaught Error: Assertion failed: file:///D:/git/flutter/packages/flutter/lib/src/rendering/mouse_tracking.dart:301:12
!debugDuringDeviceUpdate
is not true
at Object.throw
[as throw] (errors.dart:216)
at Object.assertFailed (errors.dart:24)
at mouse_tracking.MouseTracker.new.[_deviceUpdatePhase] (mouse_tracking.dart:301)
at mouse_tracking.dart:408
at mouse_tracking.MouseTracker.new.[_monitorMouseConnection] (mouse_tracking.dart:290)
at mouse_tracking.MouseTracker.new.updateWithEvent (mouse_tracking.dart:407)
at binding$5.WidgetsFlutterBinding.new.dispatchEvent (binding.dart:276)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerEventImmediately] (binding.dart:316)
at binding$5.WidgetsFlutterBinding.new.handlePointerEvent (binding.dart:280)
at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue] (binding.dart:238)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket] (binding.dart:221)
at Object.invoke1 (platform_dispatcher.dart:907)
at _engine.EnginePlatformDispatcher..invokeOnPointerDataPacket (platform_dispatcher.dart:170)
at _engine.PointerBinding.
.[_onPointerData] (pointer_binding.dart:128)
at pointer_binding.dart:513
at pointer_binding.dart:485
at pointer_binding.dart:208

I encountered the same problem, and I don't know how to reproduce this exception. It may happen when the mouse pointer moves from another window to the app window, but I am not sure.
I used go-flutter to compile an app to run in macOS (MacOS Catalina 10.15.7)

The follows exceptions are thrown from time to time:
[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception:'package:flutter/src/rendering/mouse_tracking.dart': Failed assertion: line 322 pos 12:'(event is PointerAddedEvent) == ( lastEvent is PointerRemovedEvent)': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 BaseMouseTracker._shouldMarkStateDirty (package:flutter/src/rendering/mouse_tracking.dart:322:12)
#3 BaseMouseTracker.updateWithEvent (package:flutter/src/rendering/mouse_tracking.dart:404:10)
#4 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:276:22)
#5 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:316:7)
#6 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:280:5)
#7 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:238:7)
#8 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:221:7)
#9 _rootRunUnary (dart:async/zone.dart:1206:13)
#10 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
#11 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
#12 _invoke1 (dart:ui/hooks.dart:176:10)
#13 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:276:7)
#14 _dispatchPointerDataPacket (dart:ui/hooks.dart:96:31)

Because I don’t use mouse-related code, only onTap(), and the exception stack does not point to a known onTap(), so I cannot provide the code, please help

flutter doctor -v

[✓] Flutter (Channel beta, 1.24.0-10.2.pre, on Mac OS X 10.15.7 19H2 darwin-x64, locale zh-Hans-CN)
• Flutter version 1.24.0-10.2.pre at /Users/UserName/LocalSpace/Sdk/FlutterSdk/flutter
• Framework revision 022b333 (7 weeks ago), 2020-11-18 11:35:09 -0800
• Engine revision 07c1eed46b
• Dart version 2.12.0 (build 2.12.0-29.10.beta)
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain-develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Users/UserName/LocalSpace/Sdk/AndroidSdk
• Platform android-30, build-tools 30.0.2
• ANDROID_SDK_ROOT = /Users/UserName/Sdk/FlutterSdk/flutter/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin: /Library/Apple/usr/bin:/Users/UserName/.pub-cache/bin:/Users/UserName/LocalSpace/Sdk/AndroidSdk/
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.

[✓] Xcode-develop for iOS and macOS (Xcode 12.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.2, Build version 12B45b
• CocoaPods version 1.9.2

[✓] Android Studio (version 4.0)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 51.0.1
• Dart plugin version 193.7547
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Ultimate Edition (version 2020.1.1)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin version 46.0.3
• Dart plugin version 201.7223.99

[✓] VS Code (version 1.52.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.18.0

[✓] Proxy Configuration
• HTTP_PROXY is set
• NO_PROXY is localhost,127.0.0.1
• NO_PROXY contains 127.0.0.1
• NO_PROXY contains localhost

I am facing the same issue on Linux.

[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: 'package:flutter/src/rendering/mouse_tracking.dart': Failed assertion: line 311 pos 12: '!_debugDuringDeviceUpdate': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      BaseMouseTracker._deviceUpdatePhase (package:flutter/src/rendering/mouse_tracking.dart:311:12)
#3      BaseMouseTracker.updateWithEvent.<anonymous closure> (package:flutter/src/rendering/mouse_tracking.dart:418:7)
#4      BaseMouseTracker._monitorMouseConnection (package:flutter/src/rendering/mouse_tracking.dart:300:9)
#5      BaseMouseTracker.updateWithEvent (package:flutter/src/rendering/mouse_tracking.dart:417:5)
#6      RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:275:22)
#7      GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:316:7)
#8      GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:280:5)
#9      GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:238:7)
#10     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:221:7)
#11     _rootRunUnary (dart:async/zone.dart:1370:13)
#12     _CustomZone.runUnary (dart:async/zone.dart:1265:19)
#13     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
#14     _invoke1 (dart:ui/hooks.dart:180:10)
#15     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:276:7)
#16     _dispatchPointerDataPacket (dart:ui/hooks.dart:96:31)

Every time I try to move cursor on the Flutter window I am getting this exception. It starts happening after I try do hot reload. If I restart entire application I don't face this issue.

Same Error.
image

It happens when i change my custom tab too fast with a list of widgets (some of them have a listview):
image

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.