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

升级Kotlin版本后Flutter项目构建出现重复类错误求助

解决方案:Kotlin版本更新后Flutter Android构建冲突问题

核心问题分析

你遇到的Duplicate class错误是因为项目依赖中同时存在不同版本的Kotlin标准库:新版本kotlin-stdlib:1.8.0-Beta(可能由某个插件间接引入)和旧版本kotlin-stdlib-jdk8:1.5.31,两者的JDK8扩展类重复;而StackOverflowError多是Gradle在解析冲突依赖时的递归调用导致。


分步解决方法

1. 强制统一所有Kotlin依赖版本

在android/build.gradle的allprojects块中添加版本强制规则,确保所有依赖都使用你指定的1.7.21版本:

allprojects {
    repositories {
        google()
        mavenCentral()
    }

    // 添加这段配置强制统一Kotlin版本
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib:1.7.21"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.21"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.21"
            force "org.jetbrains.kotlin:kotlin-reflect:1.7.21"
        }
    }
}

2. 升级过时的Flutter插件

部分第三方插件可能依赖旧版Kotlin,运行以下命令检查并更新插件:

flutter pub outdated

将输出中标记为outdated的插件版本升级到支持Kotlin 1.7+的最新版,修改pubspec.yaml后执行flutter pub get。

3. 彻底清理构建缓存

执行以下命令清除所有残留缓存,避免旧依赖干扰:

flutter clean
rm -rf android/.gradle android/build ios/Pods ios/Podfile.lock
flutter pub get
cd android && ./gradlew cleanBuildCache
cd ..

4. 升级Gradle适配Kotlin 1.7

如果仍出现StackOverflowError,说明当前Gradle版本与Kotlin 1.7不兼容,需升级Gradle:

  • 修改android/build.gradle中的Gradle插件版本:
buildscript {
    ext.kotlin_version = '1.7.21'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2' // 适配Kotlin 1.7的稳定版
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
  • 修改android/gradle/wrapper/gradle-wrapper.properties中的Gradle分发版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

内容的提问来源于stack exchange,提问作者Vaidik Kamde

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:15:35