Android集成Material Design时出现资源缺失报错求助
解决Material Design集成时的资源缺失错误
看起来你遇到的问题是因为API版本不匹配以及使用了过旧的Material库版本导致的,我来帮你一步步解决:
错误原因分析
你看到的android:attr/dialogCornerRadius、fontVariationSettings、ttcIndex这些属性都是在**Android 9.0(API 28)**中才新增的系统资源,而你的项目当前设置的compileSdkVersion是27,编译器无法识别这些高版本API的属性。另外你使用的com.google.android.material:material:1.0.0-alpha1是非常早期的测试版本,不仅兼容性差,还存在很多未修复的bug。
解决方案
我给你两种方案,推荐第二种长期维护的方案:
方案一:临时适配API 28(不迁移AndroidX)
如果你暂时不想迁移到AndroidX,可以按以下步骤修改:
- 打开app模块的
build.gradle,将compileSdkVersion和targetSdkVersion都修改为28:android { compileSdkVersion 28 defaultConfig { // ...其他配置 targetSdkVersion 28 } } - 升级你的AppCompat支持库到对应版本:
implementation 'com.android.support:appcompat-v7:28.0.0' - 将Material库替换为支持Support库的最后一个稳定版本:
implementation 'com.google.android.material:material:1.0.0'
方案二:迁移到AndroidX(推荐)
Support库已经停止官方维护,AndroidX是官方推荐的后续替代方案,长期来看更稳定:
- 打开项目根目录的
gradle.properties文件,添加以下配置开启AndroidX支持:android.useAndroidX=true android.enableJetifier=true - 修改app模块的
build.gradle:- 将
compileSdkVersion和targetSdkVersion升级到33或更高(比如最新稳定版34):android { compileSdkVersion 34 defaultConfig { // ...其他配置 targetSdkVersion 34 } } - 替换旧的Support库依赖为AndroidX版本:
// 替换原来的com.android.support:appcompat-v7 implementation 'androidx.appcompat:appcompat:1.6.1' - 使用最新稳定版的Material Design组件库:
implementation 'com.google.android.material:material:1.9.0'
- 将
- 同步项目后,Android Studio会自动帮你替换大部分Support库的引用,如果有少量布局或代码中的手动引用,比如
android.support.v7.widget.Toolbar,需要自行修改为AndroidX对应的组件(比如com.google.android.material.appbar.MaterialToolbar)。
最后验证
完成上述修改后,执行Build -> Clean Project,再执行Build -> Rebuild Project,清理并重新构建项目,这些资源缺失的错误应该就会消失了。
内容的提问来源于stack exchange,提问作者Demonic218
相关产品推荐
相关产品推荐

