Android Studio无法识别?selectableItemBackgroundBorderless符号问题咨询
问题原因及解决办法
嘿,我之前也碰到过一模一样的情况,来给你拆解下问题:
核心原因
- Android Studio 3.1.2的Lint检查bug:这个版本的IDE对AppCompat库中的
?selectableItemBackgroundBorderless属性存在静态识别错误,虽然你的compileSdk和support库版本(27+27.1.1)完全支持这个属性,设备运行也正常,但IDE的代码检查模块没跟上,误报了“无法解析符号”的错误。 - 主题继承问题(次要可能性):如果你的Activity主题没有继承自
Theme.AppCompat系列主题,IDE也可能出现这种识别异常,但因为设备上support库会做兼容处理,所以运行时波纹效果依然正常。
可行的解决办法
- 忽略IDE错误(快速解决):既然实际运行没问题,你可以在使用该属性的View或者布局根节点上添加注释,让Lint跳过检查:
<!--noinspection ResourceType--> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:foreground="?selectableItemBackgroundBorderless"/> - 升级Android Studio:3.1.2是比较老旧的版本了,Google在后续的3.2及以上版本中修复了这个Lint识别问题,升级后IDE就能正确识别这个属性,不会再报错。
- 手动指定资源ID(临时方案):如果暂时不想升级IDE,可以直接使用该属性对应的内部drawable资源(注意:这是AppCompat的内部资源,不同版本可能有变化,不推荐长期使用):
android:foreground="@drawable/abc_item_background_borderless_ripple"
内容的提问来源于stack exchange,提问作者Bhuvanesh BS
相关产品推荐
相关产品推荐

