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

React Native Android构建失败::app:checkDebugDuplicateClasses任务报错

React Native Android构建失败::app:checkDebugDuplicateClasses错误(关联Stripe SDK)

问题背景

安装Stripe SDK(v0.19.0)两周后,React Native Android端执行yarn android构建时,在进度76%触发:app:checkDebugDuplicateClasses任务失败,此前运行正常,iOS端无异常。涉及版本:React 17.0.2、React Native 0.68.2、buildToolsVersion 31.0.0、minSdkVersion 21、compileSdkVersion 33、targetSdkVersion 31。

解决方案

1. 定位具体重复类

默认报错仅提示任务失败,需获取详细冲突信息:

  • 执行带日志的构建命令:
    yarn android --info
    
  • 或用Android Studio打开项目,运行构建后查看Build窗口,找到以Duplicate class开头的日志行,明确重复类所属的依赖库。

2. 排除冲突依赖

根据定位到的冲突库,在android/app/build.gradle的dependencies块中,给Stripe依赖添加排除规则。例如,若冲突来自okhttp库:

implementation(project(':stripe-react-native')) {
    exclude group: 'com.squareup.okhttp3', module: 'okhttp'
    // 替换为实际冲突的group和module
}

也可通过gradle命令分析依赖树,确认冲突来源:

./gradlew app:dependencyInsight --dependency <冲突库名称> --configuration debugRuntimeClasspath

3. 清理构建缓存

缓存异常可能引发此类问题,执行以下步骤重置:

# 清理gradle缓存
./gradlew clean

# 删除本地依赖和锁文件
rm -rf node_modules yarn.lock

# 重新安装依赖
yarn install

# 重新构建
yarn android

4. 升级Stripe SDK版本

当前使用的v0.19.0版本较旧,可能与React Native 0.68.2存在兼容性问题。建议升级至适配RN 0.68的版本(可参考Stripe RN官方版本说明确认适配版本):

yarn add @stripe/stripe-react-native@<适配版本号>

升级后需检查代码中是否有API变更,确保业务逻辑正常。

5. 兜底构建配置调整(谨慎使用)

若暂时无法定位具体冲突,可在android/app/build.gradle的android块中添加打包规则,优先选择重复文件:

android {
    // 其他已有配置
    packagingOptions {
        pickFirst 'META-INF/*'
        pickFirst '**/*.class'
    }
}

注意:此方法可能掩盖潜在兼容性问题,仅作为临时解决方案,建议后续仍需定位并解决根本冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:20:47