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

Android中TextView设置自定义字体报错:找不到资源且无assets文件夹

解决Android自定义字体找不到Asset文件的问题

别担心,这个问题在Android开发里太常见了,我来一步步帮你搞定:

1. 先创建Assets文件夹

你说项目里没有assets文件夹,这很正常,Android Studio默认不会自动生成它,手动创建超简单:

  • 右键点击你的app模块(不是整个项目根目录哦)
  • 依次选择 New -> Folder -> Assets Folder
  • 在弹出的窗口里,保持默认的Target Source Set为main,直接点击Finish
    这样assets文件夹就会自动出现在src/main目录下,和res文件夹同级,这是Android官方要求的正确位置。

2. 放置字体文件到正确路径

按照你代码里的路径font/kaushan.otf,你需要:

  • 在刚创建的assets文件夹里,新建一个名为font的子文件夹(注意是小写,Android的asset路径严格区分大小写!)
  • 把你的kaushan.otf字体文件复制到这个font文件夹里
    现在文件结构应该是:src/main/assets/font/kaushan.otf,和你代码里的路径完全对应。

3. 检查代码和细节

确认你的代码里的路径和实际文件路径完全一致,尤其是大小写!比如如果你的文件夹是Font(大写F),或者字体文件名是Kaushan.otf(大写K),都会导致找不到文件的错误。
另外,也可以临时加一段代码验证文件是否存在:

try {
    String[] files = getAssets().list("font");
    for (String file : files) {
        Log.d("FontCheck", file);
    }
} catch (IOException e) {
    e.printStackTrace();
}

如果日志里能看到kaushan.otf,就说明路径没问题了。

4. 额外小提示(可选)

如果你用的是Android 8.0(API 26)及以上的版本,其实可以用更推荐的方式管理字体:把字体文件放到res/font目录下(没有的话右键res文件夹创建Font Folder即可),然后直接通过资源ID调用:

Typeface face = ResourcesCompat.getFont(this, R.font.kaushan);
headerText.setTypeface(face);

这种方式不需要手动管理asset路径,还能支持字体权重等特性,更省心。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:58:07