Gradle7.0.2下已配置vectorDrawables仍报VectorDrawableCompat错误如何解决
问题原因
该问题本质是AppCompat库的VectorDrawable适配校验不通过,结合你切分支后master代码无改动的背景,原因按出现概率从高到低排序为:
- Gradle构建缓存异常:切换分支后本地残留了其他分支的构建产物、缓存配置,导致vector资源编译逻辑不符合AppCompat的校验规则
- vectorDrawables配置位置错误:
vectorDrawables.useSupportLibrary = true未配置在主app模块的build.gradle的defaultConfig块内 - 依赖版本不兼容:当前使用的appcompat 1.2.0和AGP 7.0.2存在潜在适配问题
- Gradle wrapper版本不匹配:项目使用的Gradle运行时版本和AGP 7.0.2的要求不一致
解决方案
按优先级依次尝试以下操作:
- 全量清理构建缓存
- 打开Android Studio,点击
File > Invalidate Caches...,勾选Clear file system cache and local history,选择Invalidate and Restart - 重启后在项目根目录执行命令清理并构建:
Linux/Mac执行:./gradlew clean assembleDebug
Windows执行:gradlew.bat clean assembleDebug
- 打开Android Studio,点击
- 确认vector配置位置
检查主app模块的build.gradle文件,确保vectorDrawables.useSupportLibrary = true写在android.defaultConfig代码块内,示例配置:
由于你的minSdk已经是21,系统原生支持VectorDrawable,也可以直接删除该配置,或者设置为android { namespace "com.your.package" compileSdk 31 defaultConfig { applicationId "com.your.package" minSdk 21 targetSdk 31 versionCode 1 versionName "1.0" // 必须配置在这里,不能放在根目录build.gradle或者allprojects块中 vectorDrawables.useSupportLibrary = true } }vectorDrawables.useSupportLibrary = false,跳过AppCompat的Vector适配校验逻辑。 - 升级AppCompat依赖版本
将appcompat依赖升级到和AGP 7.0.2兼容的稳定版本:implementation 'androidx.appcompat:appcompat:1.4.2' - 核对Gradle wrapper版本
检查项目根目录下gradle/wrapper/gradle-wrapper.properties文件,确认distributionUrl对应的Gradle版本和AGP 7.0.2匹配,要求Gradle版本 >=7.0.2,示例配置:distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
内容的提问来源于stack exchange,提问作者zetatlas
相关产品推荐
相关产品推荐

