Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 共享和打印屏幕抖动_Flutter_Flutter Dependencies_Flutter Test - Fatal编程技术网

Flutter 共享和打印屏幕抖动

Flutter 共享和打印屏幕抖动,flutter,flutter-dependencies,flutter-test,Flutter,Flutter Dependencies,Flutter Test,进口 import 'dart:io'; import 'dart:typed_data'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:esys_flutter_share/esys_flutter_share.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dar

进口

import 'dart:io';
import 'dart:typed_data';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:esys_flutter_share/esys_flutter_share.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
我只需要获取一个捕获,然后共享它。我正在使用以下代码,但收到错误:

  screenshot: ^0.2.0
  esys_flutter_share: ^1.0.2

我的错误是:

    _takeScreenshotandShare() async {
    _imageFile = null;
    screenshotController
        .capture(delay: Duration(milliseconds: 10), pixelRatio: 2.0)
        .then((File image) async {
      setState(() {
        _imageFile = image;
      });
      final directory = (await getApplicationDocumentsDirectory()).path;
      Uint8List pngBytes = _imageFile.readAsBytesSync();
      File imgFile = new File('$directory/screenshot.png');
      imgFile.writeAsBytes(pngBytes);
      print("File Saved to Gallery");
      await Share.file('Anupam', 'screenshot.png', pngBytes, 'image/png');
    }).catchError((onError) {
      print(onError);
    });
  }

我在screenshot软件包中遇到了同样的问题,所以我的解决方法是在出现错误时再次调用相同的函数

I/flutter ( 2486): NoSuchMethodError: The method 'findRenderObject' was called on null.
I/flutter ( 2486): Receiver: null
I/flutter ( 2486): Tried calling: findRenderObject()

请详细说明,以便我们能够正确理解您面临的错误以及您需要帮助的事项。
screenshotController.capture().then((File image) async {
      Uint8List pngBytes = image.readAsBytesSync();
      final directory = (await getApplicationDocumentsDirectory()).path;
      File imgFile = new File('$directory/${DateTime.now().millisecondsSinceEpoch}.png');
      await imgFile.writeAsBytes(pngBytes);
      if(pngBytes.length == 0)
        // call Same function again
      else 
       // your image
    }).catchError((onError) {
      print(onError);
      Future.delayed(Duration(seconds: 1)).then((value) => //call Same function again);
    });