【发布时间】:2021-03-11 13:11:15
【问题描述】:
我似乎不知道如何解决这个错误。这以前可以工作,但在升级到 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);
}
},
),
以下是一些截图:
我们将不胜感激。
【问题讨论】:
-
错误发生在哪一行?
-
试试 ImageGallerySaver.saveImage(_imageFile, quality: 100);
-
@Noah - 整个代码都是红色的。当我点击错误时,所有这些都会突出显示。我在帖子中添加了它的屏幕截图。
-
@Pavel Shastov - 不幸的是,这不起作用
-
The docs 希望您使用
Uint8List,而不是File,这与您遇到的错误一致。
标签: flutter