flutter - 致命异常:主进程:com.flutter_image,PID:32038 kotlin.KotlinNullPointerException
问题描述
压缩图像后按下按钮时出现此错误并且应用程序崩溃请帮助我提前谢谢这是我的代码
onPressed: () async {
print('Selected Item = '+'$radioItemHolder');
if (radioItemHolder.contains('High')) {
print('High');
for (int i = 0;i < widget.image.length;i++) {
var path = await FlutterAbsolutePath.getAbsolutePath(
widget.image[i].identifier);
print("path");
print(path);
File compressedFile =await FlutterNativeImage.compressImage(path, quality:
90);
images.add(compressedFile);
GallerySaver.saveImage(compressedFile.path, albumName: 'Image Resizer')
.then((bool success) {
Fluttertoast.showToast(msg: "Image saved to gallary",toastLength:
Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
timeInSecForIosWeb: 5,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0);
});
}
Navigator.push(context,
MaterialPageRoute(builder: (context) => Share_Convert_Iamge(image:
images)),
);
}}
解决方案
首先,下载这个包: https ://pub.dev/packages/common_utils
然后尝试强制等待压缩完成,然后再运行导航逻辑。只需这样做:
import 'package:common_utils/common_utils.dart';
///.........
Future runImageCompressionLogic() async {
for (int i = 0;i < widget.image.length;i++) {
var path = await FlutterAbsolutePath.getAbsolutePath(
widget.image[i].identifier);
print("path");
print(path);
await FlutterNativeImage.compressImage(path, quality:
90).then((compressedFile) {
if (!TextUtil.isEmpty(compressedFile)) {
images.add(compressedFile);
GallerySaver.saveImage(compressedFile.path,
albumName: 'Image Resizer')
.then((bool success) {
Fluttertoast.showToast(msg: "Image saved to
gallary",toastLength:
Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
timeInSecForIosWeb: 5,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0);
});
});
}
}
}
}
///.....
onPressed: () async {
print('Selected Item = '+'$radioItemHolder');
if (radioItemHolder.contains('High')) {
print('High');
runImageCompressionLogic().whenComplete((){
Navigator.push(context,
MaterialPageRoute(builder: (context) =>
Share_Convert_Iamge(image:
images)),
});
);
}}
推荐阅读
- hibernate - Hibernate REQUIRES_NEW 或 NESTED 不适用于 MariaDB InnoDB
- laravel - 在 null 上调用成员函数 getCLientOriginalExtension() 使用 laravel
- c# - 如何将组合框选定项或值存储为短时可能为空
- python - 通过具有多个 if 语句的 pandas 数据帧优化循环和计算
- php - 如何订购带有日期和时间的 wp_query
- c# - 如何使 FlowLayoutPanel 居中
- javascript - 如何使用列表数据创建 Javascript 饼图?
- angular - 状态 A 使用 B,状态 B 使用 A
- gitlab-ci - 无服务器离线 exec 确实返回退出代码
- javascript - 获得同一周的同一天