Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 如何处理异常:无法在Flatter中实例化图像编解码器_Flutter_Image Processing_Flutter Dependencies - Fatal编程技术网

Flutter 如何处理异常:无法在Flatter中实例化图像编解码器

Flutter 如何处理异常:无法在Flatter中实例化图像编解码器,flutter,image-processing,flutter-dependencies,Flutter,Image Processing,Flutter Dependencies,这是一个音乐播放器的应用程序,我正在工作。我正在使用收集所有本地文件。这是我显示缩略图的代码 ...Container( margin: EdgeInsets.symmetric(horizontal: 40, vertical: 60), decoration: BoxDecoration( shape: BoxShape.circle, color: dark, image: DecorationImage( image:

这是一个音乐播放器的应用程序,我正在工作。我正在使用收集所有本地文件。这是我显示缩略图的代码

...Container(
    margin: EdgeInsets.symmetric(horizontal: 40, vertical: 60),
    decoration: BoxDecoration(
      shape: BoxShape.circle,
      color: dark,
      image: DecorationImage(
        image: loadThumbNail(File(path)),
        fit: BoxFit.fitHeight,
      ),
    ),
  ),...

...ImageProvider loadThumbNail(File f) {
ImageProvider img;
  try {
    img = f.existsSync() ? FileImage(f) : AssetImage(path);
  } catch (e) {
    img = AssetImage(path);
  }
 return img;
}
代码是有效的。如果缩略图不存在,则加载默认缩略图。 问题似乎只针对一个人。 这是怎么发生的

这是错误消息

════════ Exception caught by image resource service ════════════════════════════════════════════════
The following _Exception was thrown resolving an image codec:
Exception: Could not instantiate image codec.

When the exception was thrown, this was the stack: 
#0      _futurize (dart:ui/painting.dart:4419:5)
#1      instantiateImageCodec (dart:ui/painting.dart:1722:10)
#2      PaintingBinding.instantiateImageCodec (package:flutter/src/painting/binding.dart:88:12)
#3      FileImage._loadAsync (package:flutter/src/painting/image_provider.dart:864:24)
<asynchronous suspension>
...
Path: /storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1572310783227
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ 图像资源服务捕获到异常════════════════════════════════════════════════
解析图像编解码器时引发了以下\u异常:
异常:无法实例化图像编解码器。
引发异常时,这是堆栈:
#0_未来化(dart:ui/绘制。dart:4419:5)
#1个实例化的图像编解码器(dart:ui/painting.dart:1722:10)
#2 PaintingBinding.instantialeimagecodec(包:flatter/src/painting/binding.dart:88:12)
#3 FileImage.\u loadAsync(包:flatter/src/painting/image\u provider.dart:864:24)
...
路径:/storage/emulated/0/Android/data/com.Android.providers.media/albumthumbs/1572310783227
════════════════════════════════════════════════════════════════════════════════════════════════════
有趣的是,应用程序没有崩溃,也没有出现红色屏幕。缩略图区域将变为空白。我是应该就这样离开呢,还是更深入一点

就这样,我放弃了。我试着用一个错误的属性,它确实起作用了, 但是,即使对于具有有效图像的歌曲,默认图像仍然保留 缩略图


问题是,您提供的路径不是图像路径,这就是发生此错误的原因。如果您使用的是发布应用程序,则不会显示红色屏幕。如果资产丢失,则应用程序不会崩溃。如果需要修复,您可以提供更多代码,也可以保持原样。

thumbnailpath.exists(.jpg或.png)然后valid-else使用默认路径
谢谢。我希望这会解决它。结果是缩略图没有扩展