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

升级Gradle至最新版本后项目构建失败:Program type already present错误

解决Gradle升级后Program type already present: info.hoang8f.fbutton.BuildConfig错误

这个问题我碰到过好多次,本质就是你的项目里重复引入了info.hoang8f.fbutton这个库的BuildConfig类。Gradle升级后,新的D8编译器对重复类的检测变得更严格,之前可能被忽略的重复依赖问题现在直接触发了构建失败。

下面是一步步的解决办法:

  • 先定位重复依赖的来源
    打开终端,在项目根目录运行命令:

    # macOS/Linux系统
    ./gradlew app:dependencies
    # Windows系统
    gradlew.bat app:dependencies
    

    搜索info.hoang8f:fbutton,你会发现要么是你自己直接引入了这个库,同时某个第三方依赖也间接包含了它;要么是多个第三方依赖都偷偷引入了它。

  • 排除重复的依赖
    根据上面的排查结果,选择对应的方式处理:

    1. 如果是某个第三方依赖间接引入了fbutton,而你自己也直接加了这个库,就在第三方依赖里排除它:
      implementation('com.example:your-third-party-lib:1.0.0') {
          exclude group: 'info.hoang8f', module: 'fbutton'
      }
      
    2. 如果是多个依赖都引入了不同版本的fbutton,你可以强制统一使用某个稳定版本:
      configurations.all {
          resolutionStrategy.force 'info.hoang8f:fbutton:1.0.5' // 替换成你想用的具体版本
      }
      
  • 检查多模块项目的依赖重复
    要是你的项目是多模块结构,看看子模块是不是也单独引入了fbutton。这种情况下,建议只在基础模块用api引入,其他模块通过依赖基础模块来使用,避免重复添加。

  • 清理构建缓存重试
    有时候缓存会搞出奇怪的问题,运行下面的命令清理后重新构建:

    # macOS/Linux系统
    ./gradlew clean build
    # Windows系统
    gradlew.bat clean build
    

额外提一句:info.hoang8f.fbutton是个比较老的库,好像已经停止维护了。如果上面的方法都搞不定,不如考虑替换成Material Components库的按钮组件,既能解决版本兼容问题,还能获得更好的维护支持。

内容的提问来源于stack exchange,提问作者Liam Wilkinson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:14:58