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

React Native自定义Poppins字体不生效,求排查原因

排查React Native Poppins字体不生效的常见问题

以下是你可能出现操作疏漏的几个关键点,逐一排查:

  • 检查react-native.config.js配置准确性
    确保配置里的路径和字体实际存放位置完全匹配。如果你的ttf文件直接放在根目录的Assets文件夹下,配置应该是:

    module.exports = {
      assets: ['./Assets/'],
    };
    

    若Assets下还有fonts子文件夹,路径要改成./Assets/fonts/,拼写错误或路径层级不对会导致字体无法被识别。

  • 确认字体内部名称与引用名一致
    很多字体的文件名和内部注册名称不一致,比如下载的Poppins-Regular.ttf,内部名称可能是Poppins Regular(带空格)。

    • iOS:双击ttf文件打开字体册,顶部显示的就是字体内部名称
    • Android:查看android/app/src/main/res/font下的字体文件(执行npx react-native-assets后会自动复制到此),用字体工具查看内部名称
      引用时必须使用内部名称,比如:
    <Text style={{ fontFamily: 'Poppins Regular' }}>测试文本</Text>
    
  • 验证npx react-native-assets执行结果
    执行命令后查看控制台输出,确认是否显示成功将字体复制到iOS的Info.plist和Android的res/font目录。如果有报错(比如路径不存在、权限问题),先解决报错再重新执行。

  • 清理缓存并重启项目
    React Native的资源缓存可能导致字体不更新,执行以下操作:

    # 清理Metro缓存
    npx react-native start --reset-cache
    # 重启Android项目
    npx react-native run-android
    # 重启iOS项目(或直接在Xcode中重新Build)
    npx react-native run-ios
    

    仅刷新模拟器无效,必须重启Metro服务和项目。

  • iOS端检查Info.plist配置
    执行npx react-native-assets后,ios/[你的项目名]/Info.plist中应新增Fonts provided by application字段,包含你的Poppins字体文件名。如果没有,手动添加:

    <key>UIAppFonts</key>
    <array>
      <string>Poppins-Regular.ttf</string>
      <string>Poppins-Bold.ttf</string>
    </array>
    

    之后重新Build iOS项目。

  • Android端检查字体文件是否到位
    查看android/app/src/main/res/font文件夹,确认存在Poppins字体文件(文件名会被转为小写,比如poppins_regular.ttf)。如果缺失,手动复制字体文件到该目录,同时确保android/app/build.gradle中包含:

    apply from: "../../node_modules/react-native/react.gradle"
    

    再重新Build Android项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:15:40