2

我按照文档为 Roboto 字体系列添加了可下载的字体。但我无法在整个应用程序范围内应用字体系列。我反复收到此错误:

E/Minikin: addFont failed to create font /data/user/0/<package_name>/cache/.font1091-1091-0

我从 Android Studio GUI 添加了三种字体,它在字体目录中填充了所有必需的文件,在值目录中填充了证书。这是字体资源文件之一:

字体/roboto_italic.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
        app:fontProviderAuthority="com.google.android.gms.fonts"
        app:fontProviderPackage="com.google.android.gms"
        app:fontProviderQuery="name=Roboto&amp;weight=300"
        app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
</font-family>

然后我创建了一个字体系列资源文件:

字体/app_font_family.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/roboto_regular"/>
    <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/roboto_italic" />
    <font app:fontStyle="normal" app:fontWeight="700" app:font="@font/roboto_medium"/>
</font-family>

最后,为了应用 font-family 应用程序,我在我的应用程序主题中添加了以下内容:

  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        ...
        <item name="fontFamily">@font/app_font_family</item>
  </style>

没有任何字体正在加载。电话有互联网连接和权限。

我在 logcat 中反复收到错误:

12-30 22:19:52.475 1091-1091/<package_name> E/Minikin: addFont failed to create font /data/user/0/<package_name>/cache/.font1091-1091-0

我在这里这里发现了类似的问题。我已按照第一个链接中的评论的建议设置了 READ 和 WRITE 外部存储权限,但无济于事。我用 android 命名空间为 fontFamily 属性添加前缀仍然没有运气。

<item name="android:fontFamily">@font/app_font_family</item>

targetSdkVersion 是 26。我正在使用支持库版本 26.1.0

我的手机有Play Services 版本 14。(这篇文章提到需要11+版本)

我想应用应用程序范围的自定义字体而不捆绑在 apk 中,但我看不到它工作。有人可以帮我解决这个问题吗?

更新: 在任何 TexView 或 textAppearance 样式上设置字体时使用:

app:fontFamily="@font/app_font_family"
andriod:textStyle="normal"

错误仍然出现,字体未在应用程序范围内应用。

4

0 回答 0