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

更新CognitoAuth至v2.6.13后发布构建遇Gradle重复Zip条目错误

解决CognitoAuth v2.6.13发布构建时的重复类编译问题

你遇到的这个问题确实是依赖冲突+ProGuard触发的问题——发布构建开启了代码混淆/压缩后,ProGuard在处理所有依赖的class文件时,检测到了重复的类com/amazonaws/cognito/clientcontext/datacollection/BuildDataCollector.class,从而抛出了编译错误。

问题根源分析

看你的依赖配置,你同时引入了两个版本的AWS SDK组件:

  • 旧版本的aws-android-sdk-cognito:2.6.3和aws-android-sdk-cognitoidentityprovider:2.6.3
  • 新版本的aws-android-sdk-cognitoauth:2.6.13

CognitoAuth的新版本已经内置了Cognito核心库中的部分类,这就导致两个依赖包中出现了完全相同的class文件。Debug构建时因为没有启用ProGuard(minifyEnabled false),Gradle只是简单合并class文件,不会主动校验重复;但发布构建开启ProGuard后,它在执行代码压缩、混淆的预处理阶段会严格检查所有输入文件,发现重复类就会直接终止构建。

解决方案

最稳妥的处理方式是统一所有AWS SDK组件的版本,AWS官方也推荐保持SDK版本一致,避免版本不兼容和类冲突问题:

  1. 修改根级ext配置中的AWS版本号:
ext {
    supportLib = "25.3.1"
    googleLib = "11.6.0"
    amazonLib = "2.6.13" // 把旧版本2.6.3改成2.6.13
}
  1. 确保所有AWS依赖都使用这个统一版本变量:
// amazon libraries
api "com.amazonaws:aws-android-sdk-cognito:${amazonLib}"
api "com.amazonaws:aws-android-sdk-cognitoidentityprovider:${amazonLib}"
api "com.amazonaws:aws-android-sdk-cognitoauth:${amazonLib}"

如果暂时无法统一版本,也可以在CognitoAuth依赖中排除重复的模块(不推荐,可能存在潜在兼容性问题):

api('com.amazonaws:aws-android-sdk-cognitoauth:2.6.13') {
    exclude group: 'com.amazonaws', module: 'aws-android-sdk-cognito'
}

关于ProGuard的补充说明

为什么只有发布构建失败?因为:

  • Debug构建默认minifyEnabled false,ProGuard不运行,Gradle不会校验重复类(但运行时仍可能出现潜在问题)
  • 发布构建开启了minifyEnabled true,ProGuard在处理代码时会严格扫描所有class文件,发现重复就抛出错误,避免后续运行时出现类加载冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:09:41