You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android自定义View分隔符配置背景selector时抛出InflateException异常

问题根因

异常由资源类型不匹配直接触发:

  • 你存放在res/color路径下的field_underline_color.xml属于ColorStateList(颜色状态列表)资源,这类资源仅支持赋值给接收纯颜色值的属性,例如android:textColor。
  • android:background属性要求传入Drawable类型资源,你通过@color/field_underline_color引用ColorStateList时,系统无法自动将ColorStateList实例转换为Drawable类型,反射创建View执行background赋值逻辑时会抛出类型转换异常,被反射机制包装为InvocationTargetException,最终触发布局inflate失败。
  • 替换为静态颜色值时无异常,是因为系统会自动将int类型的纯色值包装为ColorDrawable实例,符合background属性的参数类型要求。
问题复现点

field_underline.xml中的错误引用写法:

<View xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@color/field_underline_color" />

你当前编写的field_underline_color.xml是ColorStateList结构,item节点使用android:color属性配置颜色,本身不属于Drawable资源。

修复方案

推荐直接将颜色选择器调整为Drawable类型的状态选择器,步骤如下:

  • 将field_underline_color.xml从res/color目录移动到res/drawable目录
  • 将所有item节点的android:color属性替换为android:drawable属性
  • 布局中引用路径改为@drawable/field_underline_color

修改后的Drawable selector示例:

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:exitFadeDuration="200"
    android:enterFadeDuration="200">
    <item
        android:state_enabled="false"
        android:state_checked="false"
        android:state_activated="false"
        android:alpha="0.4"
        android:drawable="@color/content_50" />
    <item
        android:state_enabled="true"
        android:state_checked="true"
        android:state_activated="false"
        android:alpha="1"
        android:drawable="@color/invalid" />
    <item
        android:state_enabled="true"
        android:state_checked="false"
        android:state_activated="true"
        android:alpha="1"
        android:drawable="@color/primary" />
    <item
        android:alpha="1"
        android:drawable="@color/content_50"/>
</selector>

修改后重新编译运行即可正常加载,你配置的状态切换、淡入淡出动画效果都可以正常生效。


内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 22:54:29