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

升级Google Play Billing库从5到7后遇checkDebugDuplicateClasses错误求助

解决Google Play Billing库v5升级v7后的重复类冲突问题

定位冲突根源

  • 执行./gradlew app:checkDebugDuplicateClasses --stacktrace获取完整错误日志,找到具体重复的类名,这是解决问题的核心依据。
  • 运行./gradlew app:dependencies生成依赖树,搜索重复类所属的库,确认是哪个第三方依赖和Billing库v7产生了版本冲突。

具体修复方案

1. 排除重复依赖

若排查出某第三方库依赖了旧版Billing库,在该依赖声明中添加排除规则,确保只保留v7版本:

dependencies {
    // 示例:排除第三方库中的旧版Billing依赖
    implementation('com.example:third-party-lib:1.0.0') {
        exclude group: 'com.android.billingclient', module: 'billing'
        exclude group: 'com.android.billingclient', module: 'billing-ktx' // Kotlin项目需加此规则
    }
    // 仅保留Billing库v7依赖
    implementation 'com.android.billingclient:billing:7.0.0'
    implementation 'com.android.billingclient:billing-ktx:7.0.0'
}

2. 强制统一依赖版本

在项目根目录的build.gradle(或settings.gradle的dependencyResolutionManagement块)中添加强制版本规则,确保所有依赖使用Billing库v7:

// 根目录build.gradle的allprojects块内配置
allprojects {
    configurations.all {
        resolutionStrategy {
            force 'com.android.billingclient:billing:7.0.0'
            force 'com.android.billingclient:billing-ktx:7.0.0'
        }
    }
}

或在settings.gradle中配置:

dependencyResolutionManagement {
    repositories { ... }
    resolutionStrategy {
        force 'com.android.billingclient:billing:7.0.0'
        force 'com.android.billingclient:billing-ktx:7.0.0'
    }
}

3. 清理缓存并重建

  • 执行./gradlew clean清理构建缓存
  • 重启Android Studio后,运行./gradlew assembleDebug重新构建项目

4. 移除废弃资源

若冲突类是旧版Billing库的AIDL文件(如com.android.vending.billing.IInAppBillingService),需删除项目中手动添加的该AIDL文件,Billing库v7已内置相关实现。

内容的提问来源于stack exchange,提问作者Đức Thành Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:03:22