我似乎无法弄清楚如何解决此错误。这以前是有效的,但现在升级到 Flutter Null Safety 版本后会产生此错误:
我正在使用屏幕截图:用于 ScreenshotController 的 ^1.0.0-nullsafety.1 包
File _imageFile;
ScreenshotController screenshotController = ScreenshotController();
IconButton(
icon: Icon(Icons.download_sharp),
onPressed: () {
Directory directory;
_requestPermission(Permission.storage);
try {
_imageFile = null;
screenshotController
.capture(delay: Duration(milliseconds: 10))
.then((File image) async {
//print("Capture Done");
setState(() {
_imageFile = image;
});
if (await _requestPermission(Permission.storage)) {
directory = await getExternalStorageDirectory();
String newPath = '';
List<String> folders = directory.path.split('/');
for (int x = 1; x < folders.length; x++) {
String folder = folders[x];
if (folder != 'Android') {
newPath += '/' + folder;
} else {
break;
}
}
newPath = newPath + '/Tinda';
directory = Directory(newPath);
print(directory.path);
} else {
return false;
}
if (!await directory.exists()) {
await directory.create(recursive: true);
}
if (await directory.exists()) {
final result = await ImageGallerySaver.saveImage(
_imageFile.readAsBytesSync(),
quality: 100);
print("File Saved");
print(result);
}
}).catchError((onError) {
print(onError);
});
} catch (e) {
print(e);
}
},
),
Run Code Online (Sandbox Code Playgroud)
下面是一些截图:
任何指导将不胜感激。
该错误告诉您使传递给函数的参数.then应该是类型Uint8List而不是File。这很可能是因为sceenshotController.capture返回 a Future<Uint8List>,因此在 中.then,您将可以访问Uint8List.
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |