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

React Native添加自定义字体遇阻:link命令无效、react-native-asset无反应

解决React Native 0.72.6中添加Monospace字体无效的问题

核心前提说明

React Native 0.70+版本已彻底弃用react-native link命令,因此你遇到的"命令未被识别"是正常现象,无需再使用该命令。以下是针对你的问题的分步解决方案:

1. 确认字体的实际内部名称(最容易踩坑的点)

字体文件名(如Monospace.ttf)不一定等于字体的实际内部名称,样式中必须使用实际名称才能生效:

  • Windows:右键字体文件 → 属性 → 详细信息 → 查看「标题」字段
  • Mac:双击字体文件,弹出窗口顶部显示的名称即为实际名称
  • 命令行方式:
    • Mac/Linux:fc-scan ./assets/fonts/Monospace.ttf | grep "family:"
    • Windows:powershell -Command "(Get-Item ./assets/fonts/Monospace.ttf).VersionInfo.ProductName"

修改你的样式代码,将fontFamily值替换为获取到的实际名称:

titleText: {
    position: 'relative',
    bottom: 200,
    fontSize: 55,
    fontFamily: '这里替换为字体实际名称',
}

2. 修复react-native-asset无反应的问题

如果自动工具失效,按以下步骤排查:

  • 确保在项目根目录执行命令,先清理缓存再执行:
    npx react-native-asset --reset-cache
    
  • 重新安装依赖:
    npm uninstall react-native-asset
    npm install react-native-asset --save-dev
    npx react-native-asset
    
  • 检查react-native.config.js路径是否正确,确认./assets/fonts/目录下确实存在字体文件。

3. 手动配置字体(自动工具失效时的可靠方案)

Android端

  • 手动创建android/app/src/main/assets/fonts/目录(若不存在)
  • 将Monospace.ttf复制到该目录下
  • 无需额外配置,重启Metro并重新编译项目即可

iOS端

  • 打开Xcode,将字体文件拖入项目中,勾选「Copy items if needed」并确保目标项目被选中
  • 在Info.plist中添加Fonts provided by application数组,将Monospace.ttf作为元素添加进去
  • 执行Product → Clean Build Folder清理缓存,再重新编译项目

4. 最终验证步骤

  1. 重启Metro服务:npx react-native start --reset-cache
  2. 重新编译项目:
    • Android:npx react-native run-android
    • iOS:npx react-native run-ios
  3. 运行项目后检查字体是否生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:32:18