1、异常信息
Process: , PID: 32509
: Binary XML file line #23 in :layout/devbyte_item: Binary XML file line #23 in :layout/devbyte_item: Error inflating class
Caused by: : Binary XML file line #23 in :layout/devbyte_item: Error inflating class
2、分析流程
根据搜索以及分析,可以知道是因为 inflate layout file
时出错,那么可能的原因是:
- 自定义
View
类定义出错,常见的为少了构建函数:public MyView(Context context,AttributeSet paramAttributeSet)
。该错误是使用时出错,所以不符合;
- 定义类引用为题:如写一个自定义
view
,引用的时候需要用完整路径; - 资源文件不存在或者找不到。不存在比较好判别,存在但是找不到可能的原因是不同分辨率的
drawable
下文件夹的资源,如果只在一个文件下放了资源文件,不同的分辨率设备的会报错; - 可能是编码问题;
- 内存泄漏;
-
Application
主题与组件风格不符合,比如application
主题是,但是组件却是
,这时,也可能出错(本文就是如此);
- 风格使用对象不对,比如
TextView
中Text Style
时,应该使用style
,而不是android:style
3、所获
- 遇到
layout file
无法inflate
时,应该尽可能地分析是什么原因导致无法使用,可能的原因就是某个地方出错,导致无法使用,可以考虑的方向:自定义View
是否正确;属性是否设置正确;是否引用了不存在的资源;使用View
方法是否正确;主题是否使用一致等。 - 仔细分析异常栈,由上向下,越往下,原因可能就更明显。
4、完整异常信息
Process: , PID: 32509
: Binary XML file line #23 in :layout/devbyte_item: Binary XML file line #23 in :layout/devbyte_item: Error inflating class
Caused by: : Binary XML file line #23 in :layout/devbyte_item: Error inflating class
Caused by:
at .newInstance0(Native Method)
at (:343)
at (:863)
at (:1019)
at (:970)
at (:669)
at (:542)
at (:126)
at (:95)
at (:176)
at (:156)
at $(:7078)
at $(:6235)
at $(:6118)
at $(:6114)
at $(:2303)
at (:1627)
at (:1587)
at (:665)
at .dispatchLayoutStep2(:4134)
at (:3851)
at (:4404)
at (:23488)
at (:6575)
at (:332)
at (:270)
at (:23488)
at (:6575)
at (:332)
at (:270)
at (:23488)
at (:6575)
at (:332)
at (:270)
at (:23488)
at (:6575)
at (:332)
at (:270)
at (:23488)
at (:6575)
at (:536)
at (:23488)
at (:6575)
at (:332)
at (:270)
at (:23488)
at (:6575)
at (:1841)
at (:1673)
2023-09-06 21:54:16.666 32509-32509 AndroidRuntime E at (:1582)
at (:23488)
at (:6575)
at (:332)
at (:270)
at (:867)
at (:23488)
at (:6575)
at (:4119)
at (:3495)
at (:2416)
at $(:9478)
at $(:1242)
at (:996)
at (:383)
at (:865)
at $(:1227)
at (:938)
at (:99)
at (:233)
at (:344)
at (:8249)
at (Native Method)
at $(:589)
at (:1071)
Caused by: : The style on this component requires your app theme to be (or a descendant).
at (:247)
at (:216)
at (:144)
at (:76)
at .<init>(:170)
at .<init>(:160)