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
相关产品推荐
相关产品推荐

