无法检索字体资源

我正在使用版本27,在上一个版本中,我为我的项目使用了新的字体资源功能,但一天后,这行代码发生了3次崩溃compileSdktargetSdk

Typeface typeface = ResourcesCompat.getFont(this, R.font.my_font);

并且崩溃报告说这是因为 和 字体资源 无法检索。所有3崩溃都发生在Android版本的用户中。这是支持库中的错误还是我做错了什么?android.content.res.Resources$NotFoundException5.1.1


答案 1

我在API级别16上使用可下载字体与Google Play服务9.2.56(模拟器)时也遇到了同样的崩溃。

如果您使用此功能,则设备必须具有 Google Play 服务版本 11 或更高版本才能使用 Google 字体提供商(请参阅文档中的此说明)。


答案 2

遇到同样的问题,注意到文档中的一个细节,这很有帮助:

通过支持库在 XML 布局中声明字体系列时,请使用应用命名空间来确保字体加载。

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
  <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
  <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" />
</font-family>

我以前一直在使用“android”命名空间,更改为“app”命名空间使我的字体正确加载到较旧的设备上。


推荐