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



这是我正在开发的音乐播放器应用程序。我正在使用音频播放器插件来收集所有本地文件。这是我用于显示缩略图的代码

...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
════════════════════════════════════════════════════════════════════════════════════════════════════

有趣的是,该应用程序不会崩溃,也没有出现红屏。缩略图区域将变为空白。我应该就这样离开还是进一步挖掘?

我就这样放弃了。我尝试使用 onError 属性,它确实有效, 但是,即使对于具有有效 缩略图。

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

相关内容

最新更新