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

Flutter打包App Bundle失败::app:minifyReleaseWithR8任务执行异常

Flutter构建App Bundle失败:重复类与StackOverflowError问题

问题详情

构建Flutter项目的App Bundle时,minifyReleaseWithR8任务执行失败,核心报错有两个:

  • org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$Ed25519类重复定义
  • 伴随java.lang.StackOverflowError错误

初步判断是Java依赖冲突,但无法定位具体根源。

解决步骤

1. 排查重复的BouncyCastle依赖

在Android项目根目录执行命令拉取完整依赖树,找出重复引入BouncyCastle的库:

./gradlew app:dependencies

搜索bouncycastle相关条目,找到重复来源后,在app/build.gradle中给对应依赖添加排除规则。例如某第三方库带了重复依赖,可这么写:

implementation('com.example:target-library:1.0.0') {
    exclude group: 'org.bouncycastle'
}

2. 调整R8混淆配置

在app/proguard-rules.pro中添加规则,避免混淆处理时触发重复类报错:

-keep class org.bouncycastle.** { *; }
-dontwarn org.bouncycastle.**

同时检查app/build.gradle的release构建配置,确保R8参数正确:

android {
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

3. 清理构建缓存

缓存异常可能引发依赖问题,依次执行以下命令清空缓存:

flutter clean
./gradlew clean
./gradlew build --refresh-dependencies

4. 解决StackOverflowError

该错误多因R8混淆时递归处理过深导致,在gradle.properties中加大JVM堆内存:

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

5. 检查版本兼容性

确保Flutter、Gradle、Android Gradle Plugin版本匹配。用flutter doctor -v确认环境,若版本不兼容,可选择升级Flutter:

flutter upgrade

或调整项目根目录build.gradle中的版本号,示例如下:

buildscript {
    ext.kotlin_version = '1.9.0'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

内容的提问来源于stack exchange,提问作者Ahmet Özrahat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:41:04