You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

原可正常构建的Android项目构建失败,报attr/tint资源重复错误

解决AppCompat-v7中attr/tint重复定义的构建错误

这个问题我之前踩过坑!本质是不同依赖库重复定义了attr/tint资源属性,尤其是在使用较旧的AppCompat版本(比如你用的27.1.0)时,很容易和其他第三方库或者同系列的支持库产生冲突。下面给你几个靠谱的解决办法:

1. 优先升级到AndroidX(最推荐)

旧的Support Library已经停止维护了,Google早就转向AndroidX了,升级后不仅能解决这个资源冲突,还能避免很多其他兼容性问题:

  • 打开项目根目录的gradle.properties,添加以下配置:
    android.useAndroidX=true
    android.enableJetifier=true
    
  • 把build.gradle(Module级)里的旧支持库依赖替换成AndroidX版本:
    // 替换原来的 implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    
  • 同步项目后,清理并重新构建:执行./gradlew clean build命令。

2. 升级到更高版本的Support Library(如果暂时不想迁AndroidX)

如果还想继续用Support Library,把AppCompat版本升级到同系列的最高稳定版(比如28.0.0,这是Support Library的最后一个版本):

implementation 'com.android.support:appcompat-v7:28.0.0'

同步后清理缓存再构建,通常能解决重复定义的问题,因为高版本已经修复了这类资源冲突。

3. 排查并排除冲突的依赖

如果升级后还是有问题,先找出到底是哪个库在重复定义tint:

  • 执行命令查看完整依赖树:
    ./gradlew app:dependencies
    
  • 找到同时引入了AppCompat或者包含tint属性的第三方库,在依赖声明里排除重复的部分。比如某个第三方库自带了AppCompat,就这么写:
    implementation('com.example:some-third-party-lib:1.0.0') {
        exclude group: 'com.android.support', module: 'appcompat-v7'
    }
    

4. 清理Gradle缓存

有时候缓存文件损坏也会导致奇怪的资源冲突,手动清理试试:

  • 执行命令清理缓存:
    ./gradlew clean
    ./gradlew build --refresh-dependencies
    
  • 或者直接删除项目根目录下的.gradle/caches文件夹(就是你报错里的那个路径),然后重新同步项目。

内容的提问来源于stack exchange,提问作者Francis Bacon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:29:26