Android构建报错:无法确定标签‘?attr/shapeAppearanceCornerSmall’类型的解决方法
问题分析与解决办法
问题本质
这确实是依赖版本不兼容引发的问题。你引入的test_sdk:1.1.5内部依赖了material-1.8.0,但你的项目编译SDK版本不足、或是项目自身依赖的Material Components版本和这个版本不匹配,导致资源合并时无法识别?attr/shapeAppearanceCornerSmall这个Material库特定属性。
具体解决步骤
升级编译SDK版本
打开模块的build.gradle(或build.gradle.kts),将compileSdkVersion设置为33及以上(Material 1.8.0要求最低编译SDK为33):android { compileSdkVersion 33 // 其他配置 }强制统一Material库版本
在项目根目录的build.gradle中添加版本强制策略,让所有依赖使用同一版本的Material库,避免冲突:allprojects { repositories { // 你的仓库配置(比如google()、mavenCentral()) } configurations.all { resolutionStrategy { // 可以选择和test_sdk一致的1.8.0,或是你项目原本使用的稳定版本 force 'com.google.android.material:material:1.8.0' } } }若使用Gradle Kotlin DSL,写法为:
allprojects { repositories { // 仓库配置 } configurations.all { resolutionStrategy.force("com.google.android.material:material:1.8.0") } }排查依赖树
执行命令查看test_sdk的完整依赖链,确认它引入的版本细节:./gradlew app:dependencies --configuration releaseCompileClasspath在输出中找到
test_sdk的分支,明确它依赖的Material版本,再针对性调整项目依赖。降级SDK版本(备选)
如果上述方案无效,可以尝试更换test_sdk的低版本,比如:implementation 'com.xxxx..xx:test_sdk:1.1.0'选择一个依赖的Material版本和你项目兼容的SDK版本。
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

