首页 > 解决方案 > 有没有办法在颤动中使用 .svg 作为应用程序图标?

问题描述

我正在使用flutter_launcher_icons包在颤振应用程序中设置默认应用程序图标(特别适用于android)。现在,我必须使用svg文件作为图标,因为png图标在通知栏中的深色主题 android 版本中显示不正确。但它显示了一些错误NoDecoderForImageFormatException

pubspec.yaml 文件配置:


flutter_icons:
  #  image_path: "assets/images/icon-128x128.png"
  android: "launcher_icon"
  ios: true
  image_path: "assets/images/logo.svg"

这是flutter pub run flutter_launcher_icons:main命令的输出。


pub run flutter_launcher_icons:main
  ════════════════════════════════════════════
     FLUTTER LAUNCHER ICONS (v0.9.0)                               
  ════════════════════════════════════════════
  
• Creating default icons Android

✓ Successfully generated launcher icons
Unhandled exception:

✗ ERROR: NoDecoderForImageFormatException 
assets/images/logo.svg
#0      decodeImageFile (package:flutter_launcher_icons/utils.dart:37:5)
#1      createDefaultIcons (package:flutter_launcher_icons/android.dart:35:24)
#2      createIconsFromConfig (package:flutter_launcher_icons/main.dart:103:5)
#3      createIconsFromArguments (package:flutter_launcher_icons/main.dart:60:7)
#4      main (file:///home/jspw/Android/Sdk/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.9.0/bin/main.dart:6:3)
#5      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:281:32)
#6      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
pub finished with exit code 255

标签: androidfluttersvgflutter-dependencies

解决方案


The package flutter_launcher_icons only uses PNG images to create all the different sizes of logos (hdpi, mdpi, xhdpi etc...)

If you have a problem with Android, did you try to use the adaptive_icon_background and adaptive_icon_foreground attribute?


推荐阅读