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

生成签名APK/Bundle时出现Duplicate class错误求助

解决Kotlin标准库重复类导致签名APK/Bundle构建失败问题

问题原因

从错误日志可直接定位:项目同时包含不同版本的Kotlin标准库扩展模块,且新版stdlib已整合旧版扩展模块的内容。具体冲突点:

  • Kotlin 1.8.0的kotlin-stdlib已内置kotlin-stdlib-jdk7和kotlin-stdlib-jdk8的所有类
  • 项目依赖中又引入了1.5.10版本的kotlin-stdlib-jdk7和kotlin-stdlib-jdk8,造成类重复

Debug构建和Rebuild未触发错误,是因为Release签名包流程会执行严格的checkDuplicateClasses校验,而Debug模式下该校验通常不会强制执行。

解决步骤

1. 统一所有Kotlin依赖版本

在项目根目录的build.gradle中,添加强制统一Kotlin版本的配置,确保所有依赖使用同版本标准库:

allprojects {
    repositories {
        google()
        jcenter()
    }

    // 新增:强制统一Kotlin标准库版本
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib:1.8.0"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0"
        }
    }

    // 原有的其他配置
    project.ext {
        exoplayerPublishEnabled = true
    }
    if (it.hasProperty('externalBuildDir')) {
        if (!new File(externalBuildDir).isAbsolute()) {
            externalBuildDir = new File(rootDir, externalBuildDir)
        }
        buildDir = "${externalBuildDir}/${project.name}"
    }
}

2. 移除模块中显式引入的旧版扩展依赖

打开模块级build.gradle(如ss-music模块的配置文件),删除以下类似旧版依赖:

// 删除这些重复依赖
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.10'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10'

3. 清理缓存并重新构建

  • 执行File > Invalidate Caches... > Invalidate and Restart重启Android Studio,清理IDE缓存
  • 在终端运行./gradlew clean build,清理构建缓存并重新构建项目

完成以上操作后,重新生成签名APK/Bundle即可解决重复类冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:28:10