未找到Android Runtime Exception字体资产

Muz*_*ain 11 java android android-fonts

这是我的代码和屏幕截图我正在尝试设置自定义字体字体但是当字体文件在资产文件夹中时,运行时异常发生字体资产未找到.我错过了什么吗?

Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf");
((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 android studio项目的截图

Mr.*_*ini 31

使用此方法:

final Typeface typeface = ResourcesCompat.getFont(context, R.font.X);
Run Code Online (Sandbox Code Playgroud)

ResourcesCompat class 是检索资源的兼容方式。

  • 嘿!虽然此代码片段可能是解决方案,但 [包括解释](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而那些人可能不知道您提出代码建议的原因。 (2认同)

小智 14

  1. 文件夹的名称应该是“fonts”而不是“font”
  2. 请注意,您的“字体”文件夹位于“资产”文件夹下(应该位于“主”文件夹下,而不是“res”文件夹下)我花了很长时间才弄清楚这一点......


Gow*_*Raj 7

文件夹名称必须是'fonts'而不是'font'

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/" + font);
Run Code Online (Sandbox Code Playgroud)

  • 我已将字体文件夹重命名为字体,但仍然存在相同的错误. (2认同)

Mid*_* MP 5

您的字体资产文件夹命名不正确。您应该将该文件夹命名为fonts而不是font。还要更改您的代码:

Typeface font = Typeface.createFromAsset(getAssets(), "fonts/terminal.ttf");
Run Code Online (Sandbox Code Playgroud)

  • 这是解决我的问题的唯一答案。我有多余的“字体”和“字体”文件夹。 (2认同)

Muz*_*ain 0

我尝试了另一个工作正常的字体文件,所以我得出结论,早期的字体文件已损坏。感谢@Miduhun MP、@Gowtham Raj 和@jagan reddy