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
相关产品推荐
相关产品推荐

