Flutter项目中Android平台自定义字体不生效问题咨询
Flutter自定义字体Android不生效的解决办法
1. 修正pubspec.yaml的格式错误
YAML对缩进和格式要求严格,你的配置存在缩进问题,正确格式如下(注意层级缩进用2个空格):
fonts: - family: RobotoMono fonts: - asset: fonts/RobotoMono-Regular.ttf
错误的缩进会导致Android无法识别字体资源。
2. 核对字体文件路径与文件名
- 确保
fonts文件夹位于项目根目录下,且RobotoMono-Regular.ttf文件确实存在于该文件夹中 - Android对文件名大小写敏感,需保证代码中填写的文件名与实际文件完全一致(包括大小写)——iOS不区分大小写所以能正常显示,这是跨平台的常见差异点
3. 清理缓存并重新构建
执行以下命令清除缓存后重新运行项目:
flutter clean flutter pub get flutter run
Android构建缓存可能导致新字体资源未被加载,清理后可解决这类问题。
4. 测试直接指定字体的效果
暂时绕过全局主题,在Text组件中直接指定字体,验证字体是否能被识别:
Text('测试自定义字体', style: TextStyle(fontFamily: 'RobotoMono'))
如果该组件能正常显示字体,说明全局ThemeData的配置可能被子组件的样式覆盖,需检查子组件是否设置了独立的fontFamily。
5. 确认Android资源配置未被手动修改
避免手动修改Android项目的AndroidManifest.xml或res目录下的资源配置,让Flutter自动处理assets资源的打包与加载。
内容的提问来源于stack exchange,提问作者arsalan
相关产品推荐
相关产品推荐

