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

Android多build flavour全量构建时出现PagerAdapter类重复定义错误

错误本质

该错误为典型的类重复定义冲突,仅全量构建所有flavor时触发、单flavor构建正常的原因是:不同flavor的依赖链中引入了两份不同构建产物的androidx.viewpager:viewpager库,全量构建合并dex时触发重复类校验。

定位步骤

  • 分别导出不同flavor对应变体的依赖洞察结果,确认viewpager的引入来源:
    示例命令:
    # 替换为你实际的flavor变体名,分别查询所有flavor的结果
    ./gradlew :app:dependencyInsight --dependency androidx.viewpager:viewpager --variant prodGameDebug
    
    重点检查:是否有flavor单独声明了viewpager依赖、是否不同flavor通过第三方库传递引入了不同版本的viewpager、是否某个flavor的libs目录下单独放了viewpager的jar/aar包。

修复方案

  1. 强制统一全局viewpager版本
    在项目根目录build.gradle中添加版本锁定规则,确保所有flavor使用同一份viewpager依赖:
allprojects {
    configurations.all {
        resolutionStrategy {
            // 替换为你项目实际使用的viewpager版本
            force 'androidx.viewpager:viewpager:1.0.0'
        }
    }
}
  1. 排除重复的传递依赖
    如果定位到是某个flavor的第三方依赖自带了viewpager,在对应依赖声明中排除viewpager即可:
// 示例:给prodGame风味的xxx库依赖排除viewpager
prodGameImplementation("com.example.xxx:xxx-sdk:2.1.0") {
    exclude group: 'androidx.viewpager', module: 'viewpager'
}
  1. 清理重复的本地依赖
    检查各模块的libs目录,删除重复的viewpager相关jar/aar包;同时检查是否有模块手动拷贝了androidx.viewpager包下的类到源码中,如有则删除重复类。
  2. 彻底清理构建缓存重试
    执行以下命令清理所有缓存后重新构建:
./gradlew clean
rm -rf ~/.gradle/caches/

内容的提问来源于stack exchange,提问作者Leonid Kabanen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:18:04