无法检索字体资源

Ami*_*r_P 13 java fonts android android-support-library

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

Typeface typeface = ResourcesCompat.getFont(this, R.font.my_font);
Run Code Online (Sandbox Code Playgroud)

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

Vad*_*tov 10

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

如果您正在使用它,则设备必须具有 Google Play 服务版本 11 或更高版本才能使用 Google 字体提供程序(请参阅文档中的此注释)。

  • @VadimKotov 但我在真实设备上遇到了这个问题 (2认同)

小智 9

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

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

<?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>
Run Code Online (Sandbox Code Playgroud)

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

  • 对我正在使用的可下载字体不起作用。:( (3认同)