Flutter 颤振与振动;航海家及;图像采集器:为什么我可以进入下一页?查找停用的小部件';他的祖先是不安全的

Flutter 颤振与振动;航海家及;图像采集器:为什么我可以进入下一页?查找停用的小部件';他的祖先是不安全的,flutter,dart,exception,navigator,imagepicker,Flutter,Dart,Exception,Navigator,Imagepicker,这是我的getImage函数。拍完照片后,我会剪掉它。然后我进入下一页。它工作得很好。但是今天,我犯了一个错误。为什么呢?我不明白。我应该更新我的颤振还是什么 getImage(ImageSource source, BuildContext context) async { this.setState(() { _inProcess = true; }); // File image = await ImagePicker.pickImage(source

这是我的getImage函数。拍完照片后,我会剪掉它。然后我进入下一页。它工作得很好。但是今天,我犯了一个错误。为什么呢?我不明白。我应该更新我的颤振还是什么

getImage(ImageSource source, BuildContext context) async {
    this.setState(() {
      _inProcess = true;
    });

    // File image = await ImagePicker.pickImage(source: source);
    final _picker = ImagePicker();
    PickedFile image = await _picker.getImage(source: source);
    // File file_image = File(image.path);

    if (image != null) {
      // Remove crop attribute if we don't want to resize the image
      File cropped = await ImageCropper.cropImage(
        sourcePath: image.path,
        aspectRatio: CropAspectRatio(ratioX: 1, ratioY: 1),
        compressQuality: 100, // 100 means no compression
        maxWidth: 700,
        maxHeight: 700,
        compressFormat: ImageCompressFormat.jpg,
        androidUiSettings: AndroidUiSettings(
          toolbarColor: primaryColor,
          toolbarTitle: "RPS Cropper",
          statusBarColor: primaryColor,
          backgroundColor: Colors.white,
          //toolbarWidgetColor: primaryColor,
          activeControlsWidgetColor: primaryColor,
          //dimmedLayerColor: primaryColor,
          cropFrameColor: primaryColor,
          cropGridColor: primaryColor,
        ),
      );

      print('======= After Cropped =======');

      this.setState(() {
        _selectedFile = cropped;
        //_selectedFile = File(image.path);
        _inProcess = false;
        //_showDelete = true;
        isTaken = true;
      });

      if (_selectedFile != null) {
        print('====== Leaving Image Evaluation =====');
        // Navigator.pop(context);
        this.setState(() {
          _inProcess = false;
        });
        await Navigator.pushReplacement(
          context,
          MaterialPageRoute(
            builder: (context) => UploadPictureInfo(
              image: _selectedFile,
            ),
          ),
        );
        print('After pop and push Image Evaluation');
      } else {
        //Navigator.of(context).pop();
        this.setState(() {
          //_selectedFile = cropped;
          _inProcess = false;
          // //_showDelete = true;
          // isTaken = true;
        });
      }
    } else {
      this.setState(() {
        _inProcess = false;
      });
    }
  }
这是错误消息

I/BitmapCropTask( 9329): Should crop: true
I/flutter ( 9329): ======= After Cropped =======
I/flutter ( 9329): ====== Leaving Image Evaluation =====
E/flutter ( 9329): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe.
E/flutter ( 9329): At this point the state of the widget's element tree is no longer stable.
E/flutter ( 9329): To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() in the widget's didChangeDependencies() method.
E/flutter ( 9329): #0      Element._debugCheckStateIsActiveForAncestorLookup.<anonymous closure> (package:flutter/src/widgets/framework.dart:3904:9)
E/flutter ( 9329): #1      Element._debugCheckStateIsActiveForAncestorLookup (package:flutter/src/widgets/framework.dart:3918:6)
E/flutter ( 9329): #2      Element.findAncestorStateOfType (package:flutter/src/widgets/framework.dart:4037:12)
E/flutter ( 9329): #3      Navigator.of (package:flutter/src/widgets/navigator.dart:2216:40)
E/flutter ( 9329): #4      Navigator.pushReplacement (package:flutter/src/widgets/navigator.dart:1876:22)
E/flutter ( 9329): #5      _ImageEvaluationState.getImage (package:PhotoEarn/screens/camera/image_evaluation.dart:199:25)
E/flutter ( 9329): <asynchronous suspension>
E/flutter ( 9329): #6      _ImageEvaluationState.build.<anonymous closure>.<anonymous closure> (package:PhotoEarn/screens/camera/image_evaluation.dart:474:33)
E/flutter ( 9329): #7      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)
E/flutter ( 9329): #8      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1111:38)
E/flutter ( 9329): #9      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24)
E/flutter ( 9329): #10     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11)
E/flutter ( 9329): #11     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5)
E/flutter ( 9329): #12     BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:222:7)
E/flutter ( 9329): #13     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:476:9)
E/flutter ( 9329): #14     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:77:12)
E/flutter ( 9329): #15     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:122:9)
E/flutter ( 9329): #16     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
E/flutter ( 9329): #17     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18)
E/flutter ( 9329): #18     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7)
E/flutter ( 9329): #19     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:370:19)
E/flutter ( 9329): #20     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:350:22)
E/flutter ( 9329): #21     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:266:11)
E/flutter ( 9329): #22     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:305:7)
E/flutter ( 9329): #23     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7)
E/flutter ( 9329): #24     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7)
E/flutter ( 9329): #25     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 9329): #26     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 9329): #27     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 9329): #28     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter ( 9329): #29     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)
E/flutter ( 9329): 
D/EGL_emulation( 9329): eglMakeCurrent: 0xddd058e0: ver 3 0 (tinfo 0xdcaa8ec0)
D/EGL_emulation( 9329): eglMakeCurrent: 0xddd19e80: ver 3 0 (tinfo 0xdcab1c40)
D/EGL_emulation( 9329): eglMakeCurrent: 0xddd19e80: ver 3 0 (tinfo 0xdcab1c40)
D/EGL_emulation( 9329): eglMakeCurrent: 0xddd058e0: ver 3 0 (tinfo 0xdcaa8ec0)
D/eglCodecCommon( 9329): setVertexArrayObject: set vao to 0 (0) 53 0
D/EGL_emulation( 9329): eglMakeCurrent: 0xddd19e80: ver 3 0 (tinfo 0xdcab1c40)
I/BitmapCropTask(9329):是否应裁剪:true
I/颤振(9329):=========裁剪后=======
I/颤振(9329):=======离开图像评估=====
E/flatter(9329):[错误:flatter/lib/ui/ui_dart_state.cc(177)]未处理的异常:查找停用小部件的祖先是不安全的。
E/flatter(9329):此时小部件元素树的状态不再稳定。
E/flatter(9329):为了在dispose()方法中安全地引用小部件的祖先,请通过在小部件的didChangeDependencies()方法中调用dependOnInheritedWidgetOfExactType()来保存对祖先的引用。
E/颤振(9329):#0元素。_调试检查状态为激活的组件。(包:flatter/src/widgets/framework.dart:3904:9)
E/flatter(9329):#1个元素。_debugCheckStateIsActiveForAncestorLookup(包:flatter/src/widgets/framework.dart:3918:6)
E/flatter(9329):#2 Element.findAncestorStateOfType(包:flatter/src/widgets/framework.dart:4037:12)
E/flatter(9329):#3 Navigator.of(包:flatter/src/widgets/Navigator.dart:2216:40)
E/flatter(9329):#4 Navigator.pushReplacement(包:flatter/src/widgets/Navigator.dart:1876:22)
电子/颤振(9329):#5 ImageEvaluationState.getImage(软件包:PhotoEarn/screens/camera/image_evaluation.dart:199:25)
E/颤振(9329):
E/颤振(9329):#6#图像评估状态。构建。。(包装:PhotoEarn/屏幕/相机/图像评估。dart:474:33)
E/颤振(9329):#7(InkResponseEstate.)把手(包装:颤振/src/材料/墨水(尺寸:993:19)
E/颤振(9329):#8#InkResponse.build。(包装:颤振/src/材料/墨水井。省道:1111:38)
E/flatter(9329):#9手势识别器.invokeCallback(包:flatter/src/signatures/recognizer.dart:183:24)
E/颤振(9329):#10 TapGestureRecognitor.handleTapUp(包:颤振/src/手势/tap.dart:598:11)
电子/颤振(9329):#11基本手势识别器。#检查(包装:颤振/src/手势/tap.省道:287:5)
E/flatter(9329):#12 BaseTapgestureRecognitor.handlePrimaryPointer(包:flatter/src/signatures/tap.dart:222:7)
E/颤振(9329):#13 PrimaryPointerTestureRecognizer.handleEvent(包:颤振/src/手势/识别器。dart:476:9)
电子/颤振(9329):#14点外部程序。#调度(包:颤振/src/手势/指针路由器。dart:77:12)
E/颤振(9329):#15点外部。#调度事件路线。(包装:颤振/src/signatures/pointer_router.省道:122:9)
E/flatter(9329):#16 LinkedHashMapMixin.forEach(dart:collection patch/compact_hash.dart:377:8)
E/flatter(9329):#17点路由器。#调度事件路由(包:flatter/src/signatures/pointer#路由器。dart:120:18)
E/flatter(9329):#18 PointerRouter.route(包:flatter/src/signatures/pointer_router.dart:106:7)
E/flatter(9329):#19 GestureBinding.handleEvent(包:flatter/src/signatures/binding.dart:370:19)
E/flatter(9329):#20 GestureBinding.dispatchEvent(包:flatter/src/signatures/binding.dart:350:22)
E/flatter(9329):#21 renderbinding.dispatchEvent(包:flatter/src/rendering/binding.dart:266:11)
E/flatter(9329):#22 GestureBinding.handlePointerEvent(包:flatter/src/signatures/binding.dart:305:7)
E/颤振(9329):#23手势绑定。(U flushPointerEventQueue(包装:颤振/src/手势/绑定。省道:240:7)
电子/颤振(9329):#24手势绑定。"手持指针数据包(包:颤振/src/手势/binding.dart:213:7)
E/颤振(9329):#25 _根运行单位(dart:async/zone.dart:1206:13)
E/flatter(9329):#26 _CustomZone.runUnary(dart:async/zone.dart:1100:19)
E/颤振(9329):#27 _CustomZone.runUnaryGuarded(dart:async/zone.dart:1005:7)
E/颤振(9329):#28 _调用1(省道:ui/钩子。省道:265:10)
E/颤振(9329):#29 dispatchPointerDataPacket(dart:ui/hooks.dart:174:5)
E/颤振(9329):
D/EGL_仿真(9329):eglMakeCurrent:0xddd058e0:ver 3 0(tinfo 0xdcaa8ec0)
D/EGL_仿真(9329):eglMakeCurrent:0xddd19e80:ver 3 0(tinfo 0xdcab1c40)
D/EGL_仿真(9329):eglMakeCurrent:0xddd19e80:ver 3 0(tinfo 0xdcab1c40)
D/EGL_仿真(9329):eglMakeCurrent:0xddd058e0:ver 3 0(tinfo 0xdcaa8ec0)
D/eglCodecCommon(9329):setVertexArrayObject:将vao设置为0(0)53 0
D/EGL_仿真(9329):eglMakeCurrent:0xddd19e80:ver 3 0(tinfo 0xdcab1c40)
请看一下我的代码!我期待着您的来信。非常感谢

我找到了解决办法

我使用了这种类型的导航器

Navigator.of(context).pushReplacement(
          MaterialPageRoute(
            builder: (context) => UploadPictureInfo(
              image: _selectedFile,
            ),
          ),
        );