为TextView设置自定义fontFamily触发Resources$NotFoundException求助
解决自定义字体导致App启动崩溃的问题
我仔细看了你按照Google官方文档配置自定义字体后App崩溃的问题,结合你描述的操作步骤和Logcat信息,咱们一步步来排查解决:
可能的问题点及对应解决方案
1. 先确认字体文件本身是否有效
有时候下载的字体文件可能损坏,或者不是标准的TTF格式,这是最常见的崩溃原因之一。你可以:
- 用Windows自带的字体查看器打开
droidkufi_regular.ttf,确认能正常显示字体的字符 - 换一个可靠的来源重新下载该字体,替换掉当前项目里的文件
2. 检查资源目录的创建是否规范
你需要确保字体文件放在**res/font/**目录下,这个目录最好通过Android Studio的「New -> Android Resource Directory」创建,类型选择font——虽然手动在资源管理器里建目录也能生效,但容易出现Android Studio识别不完整的情况。
- 切换到Android Studio的「Android」视图,检查
res/font/下是否同时存在droidkufi_regular.ttf和myfont.xml两个文件
3. 核对字体资源文件的配置细节
你的myfont.xml语法看起来没问题,但可以再仔细核对:
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android"> <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/droidkufi_regular" /> </font-family>
- 确认
android:font的值和字体文件名完全一致(你已经改成小写了,这点没问题) - 检查xml文件有没有多余的空格、标签未闭合这类语法错误
4. 清理缓存并重新构建项目
Gradle缓存偶尔会导致资源识别异常,试试这些操作:
- 点击Android Studio工具栏的「Build -> Clean Project」,接着执行「Build -> Rebuild Project」
- 手动删除项目根目录下的
.gradle文件夹和app/build文件夹,再通过「File -> Sync Project with Gradle Files」重新同步
5. 验证布局里的引用是否正确
确保布局文件中TextView的android:fontFamily="@font/myfont"没有拼写错误,比如myfont是否和资源文件名完全一致(Android资源文件名是大小写敏感的)
6. 尝试直接引用字体文件
如果上面的方法都没效果,可以先跳过myfont.xml,直接在TextView里引用字体文件:
android:fontFamily="@font/droidkufi_regular"
如果这样能正常运行,说明问题出在myfont.xml的配置上;如果还是崩溃,那基本可以确定是字体文件本身或者资源目录的问题
补充:从Logcat定位核心错误
从你提供的Logcat信息来看,崩溃的根源是android.view.InflateException,本质是系统找不到指定的字体资源,所以优先排查资源路径和文件有效性会更高效。
内容的提问来源于stack exchange,提问作者ASghostKI
相关产品推荐
相关产品推荐

