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

Material3中SearchView组件加载报错求助(InflateException)

问题原因

你XML布局里用的com.google.android.material.search.SearchBar和SearchView属于Material Components View组件库,但你只引入了Compose版的Material3依赖——这俩不是同一套:Compose的Material3只服务于Compose代码,不支持XML中的Material View组件,系统找不到对应控件类,才会抛出InflateException。

解决步骤

1. 补加正确的依赖

在Gradle配置里添加View版的Material Components库(版本建议和你的Material3兼容,比如用1.11.0稳定版):

// 新增:XML Material控件依赖的核心库
implementation("com.google.android.material:material:1.11.0")
// 保留你原有的Compose Material3依赖(如果项目同时用Compose)
implementation("androidx.compose.material3:material3:1.1.1")
implementation("androidx.compose.material3:material3-window-size-class:1.1.1")

2. 检查主题配置

确保你的App主题继承自Material3主题,否则Material控件会因缺少主题上下文报错,在res/values/styles.xml中修改:

<style name="AppTheme" parent="Theme.Material3.Light.NoActionBar">
    <item name="colorPrimary">@color/your_primary_color</item>
    <item name="colorSecondary">@color/your_secondary_color</item>
</style>

3. 修正SearchView的属性问题

你写的android:textColor="?attr/colorAccent"在Material3中已过时,替换为Material3的标准属性:

app:queryTextColor="?attr/colorSecondary"

另外SearchView的layout_height="match_parent"没必要,改成wrap_content更合理。

4. 清理重建项目

同步Gradle后,执行Clean Project -> Rebuild Project,再重新运行App。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:34:53