升级Android Studio后构建失败:缺失Material按钮样式及R文件识别异常
解决Android Studio升级后找不到Material按钮样式及R文件异常问题
你遇到的这两个样式android:style/TextAppearance.Material.Widget.Button.Borderless.Colored和android:style/TextAppearance.Material.Widget.Button.Colored是Android API 26(Android 8.0)才新增的系统样式,结合你升级AS版本后出现的问题,大概率是项目的编译配置没跟上,同时资源引用方式也有优化空间,按下面的步骤来解决:
步骤1:升级编译SDK版本到API 26或更高
打开模块级的build.gradle(就是app目录下的那个配置文件),找到android代码块里的compileSdkVersion,把它改成26及以上的稳定版本(比如28,和AS 3.1.2兼容性很好):
android { compileSdkVersion 28 defaultConfig { minSdkVersion 你的最低支持版本 // 这个可以保持不变,只要compileSdk >= targetSdkVersion就行 targetSdkVersion 28 // 建议和compileSdkVersion保持一致 // 其他配置... } // 其他配置... }
步骤2:改用AppCompat兼容样式(更推荐)
如果你的项目依赖了AppCompat库(现在几乎所有Android项目都会用),别直接引用系统的Material样式,换成AppCompat提供的兼容版本——这样不仅能解决编译问题,还能保证低版本设备上的显示效果一致:
- 把
android:style/TextAppearance.Material.Widget.Button.Borderless.Colored替换为@style/TextAppearance.AppCompat.Widget.Button.Borderless.Colored - 把
android:style/TextAppearance.Material.Widget.Button.Colored替换为@style/TextAppearance.AppCompat.Widget.Button.Colored
步骤3:同步Support库版本与编译SDK
同样在模块级build.gradle的dependencies块里,确保AppCompat库的版本和compileSdkVersion匹配,比如compileSdk用28的话,AppCompat版本就用28.0.0:
dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' // 其他依赖... }
步骤4:彻底清理并重建项目
做完上面的修改后,执行以下操作确保缓存完全清除:
- 点击AS顶部菜单栏的
Build→Clean Project - 接着点击
Build→Rebuild Project - 如果还是有残留问题,再试试
File→Invalidate Caches / Restart→ 选择Invalidate and Restart
至于R文件无法识别的问题,本质是因为样式找不到导致资源编译失败,R文件没有正常生成——解决完上面的样式问题后,这个异常应该会自动消失。
内容的提问来源于stack exchange,提问作者Andra Stancu
相关产品推荐
相关产品推荐

