Android开发求助:Binary XML第13行EditText膨胀失败
我太懂这种盯着同一个报错反复试却没进展的疲惫感了!这个Binary XML file line #13: Error inflating class EditText报错,虽然你调整了宽高属性,但问题大概率不在这,咱们一步步来排查:
首先看你布局里第13行的EditText:
<EditText android:id="@+id/txt_Popup_Search" android:layout_width="fill_parent" android:layout_height="50dp" android:drawableLeft="@drawable/ic_search" android:hint="@string/apd_SearchButtonHint" android:background="#3B444B"/>
以下是几个最可能的原因和解决办法:
检查
@drawable/ic_search资源
这是最常见的触发点:要么这个图标文件不存在,要么它的格式有问题(比如矢量图在低版本API没做兼容)。你可以先把android:drawableLeft="@drawable/ic_search"这行注释掉,重新运行项目。如果报错消失,那就是这个资源的问题:- 确认ic_search文件在
res/drawable目录下,没有拼写错误 - 如果是矢量图(.xml格式),要确保在
build.gradle里添加兼容配置:android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
或者改用png格式的图标试试。
- 确认ic_search文件在
验证字符串资源
@string/apd_SearchButtonHint
检查res/values/strings.xml里有没有定义这个字符串,有没有拼写错误。如果字符串不存在,也会导致inflater失败。排查背景属性问题
你给EditText设置了固定颜色#3B444B作为背景,虽然大概率没问题,但可以临时换成系统默认背景试试:android:background="?android:attr/editTextBackground",如果报错消失,那可能是颜色值的问题(不过这种情况很少见)。清理缓存并Rebuild项目
Android Studio有时候会因为缓存导致奇怪的XML解析错误,试试Build > Clean Project,然后Build > Rebuild Project,再运行看看。
另外,你注释掉的那些EditText里用到了@drawable/clientid_layout_txtbg,如果之后要启用它们,也要检查这个背景资源是否正常。
内容的提问来源于stack exchange,提问作者Vengat

