我遵循article为Roboto字体家族添加了可下载的字体。 但是我无法在整个应用程序范围内应用字体家族。我反复收到此错误:
E/Minikin: addFont failed to create font /data/user/0/<package_name>/cache/.font1091-1091-0
我从Android Studio GUI中添加了三种字体,它填充了字体目录中的所有必需文件以及值目录中的certs。 这是字体资源文件之一:
font / 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&weight=300"
app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
</font-family>
然后我创建了一个字体系列资源文件:
font / 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>
最后,要在整个字体系列应用程序中应用,我在应用程序主题中添加了以下内容:
<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
我发现documentation和here发表了类似的问题。我已设置“读取”和“写入”外部存储权限,如第一个链接中的注释所建议,但无济于事。我给fontFamily属性加上了android名称空间,仍然没有运气。
<item name="android:fontFamily">@font/app_font_family</item>
targetSdkVersion是26。我正在使用支持库版本26.1.0
我的手机具有 Play Services 14版。 (here帖子中提到需要版本11 +)
我想应用范围广泛的自定义字体而不将其捆绑在apk中,但是我看不到它起作用。有人可以帮我解决这个问题吗?
更新: 使用以下任何一种TexView或textAppearance样式设置字体时,都会加载字体:
app:fontFamily="@font/app_font_family"
andriod:textStyle="normal"
错误仍然出现,并且字体未在整个应用范围内应用。