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

Flutter Android项目构建失败,遇重复类及资源文件冲突求解决

解决Flutter Android项目BouncyCastle依赖冲突构建失败问题

问题描述

  • 任务:app:checkDebugDuplicateClasses执行失败:在模块jetified-bcprov-jdk15on-1.65(org.bouncycastle:bcprov-jdk15on:1.65)和jetified-bcprov-jdk15to18-1.69(org.bouncycastle:bcprov-jdk15to18:1.69)中发现重复类org.bouncycastle.LICENSE
  • 任务:app:mergeDebugJavaResource执行失败:发现多个文件具有独立于操作系统的路径org/bouncycastle/x509/CertPathReviewerMessages_de.properties

当前配置信息

Gradle全局配置(gradle.properties)

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

Android构建参数

  • 目标SDK版本:31
  • 编译SDK版本:31
  • Gradle插件版本:com.android.tools.build:gradle:4.1.3

Flutter环境信息

Flutter 3.3.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision ffccd96b62(4周前)• 2022-08-29 17:28:57 -0700
Engine • revision 5e9e0e0aa8
Tools • Dart 2.18.0 • DevTools 2.15.0

解决方案

这类问题是BouncyCastle不同版本依赖冲突导致的,可通过以下方式解决:

方法1:强制统一BouncyCastle依赖版本

打开android/app/build.gradle,在android代码块外部添加如下配置,强制所有依赖使用同一版本的BouncyCastle库:

configurations.all {
    resolutionStrategy {
        force 'org.bouncycastle:bcprov-jdk15to18:1.69'
        // 若存在其他关联依赖冲突,可补充对应force规则
        force 'org.bouncycastle:bcpkix-jdk15to18:1.69'
    }
}

方法2:排查并排除冲突依赖

先执行命令查看项目依赖树,定位引入旧版本BouncyCastle的模块:

./gradlew app:dependencies

找到依赖bcprov-jdk15on:1.65的来源模块后,在该模块的依赖声明中排除冲突库。例如若为某Flutter插件引入,在android/app/build.gradle的dependencies块中修改:

implementation('插件对应的依赖路径') {
    exclude group: 'org.bouncycastle', module: 'bcprov-jdk15on'
}

方法3:清理构建缓存后重试

执行以下命令清理缓存,再重新构建项目:

flutter clean
./gradlew clean
flutter pub get
flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:10:33