You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Flutter项目中移除未使用的默认字体以减小包体积?

Flutter移除默认字体以减小包体积

是的,默认情况下,即使你仅使用自定义字体或Google Fonts,Flutter构建产物仍会包含Roboto(Android端)、SF(iOS端)这类系统默认字体——这是Flutter为保证跨平台文本渲染一致性的默认行为,但你可以通过配置移除它们来缩减包体积。

移除默认字体的具体方法

Android平台

在android/app/build.gradle的flutter配置块中添加排除规则,剔除默认的Roboto字体:

flutter {
    source '../..'
    exclude '**/Roboto*.ttf'
}

iOS平台

  1. 确保pubspec.yaml中仅声明你需要的自定义字体/Google Fonts,不要包含默认字体;
  2. 打开ios/Runner/Info.plist,在UIAppFonts数组里只添加你实际使用的字体文件,Flutter将不再打包默认的SF字体。

Flutter全局主题配置

为避免Material组件默认 fallback 到系统字体,需要全局设置主题字体,确保所有文本都使用你指定的字体:

MaterialApp(
  theme: ThemeData(
    // 使用自定义字体
    fontFamily: 'YourCustomFont',
    // 或使用Google Fonts
    textTheme: GoogleFonts.openSansTextTheme(),
  ),
  home: const HomePage(),
)

验证效果

构建完成后,你可以检查产物内容:

  • Android端查看APK解压后的assets/fonts目录,确认无Roboto相关文件;
  • iOS端查看IPA包内的字体资源,确认无SF相关字体。

内容的提问来源于stack exchange,提问作者Levent KANTAROGLU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:22:22