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

克隆Flutter项目到新设备后构建失败:Unknown Kotlin JVM target: 21

克隆Flutter项目到新设备后构建失败:Unknown Kotlin JVM target: 21

看起来你在新机器上跑克隆的Flutter项目时踩了版本匹配的坑,这个问题我之前帮朋友排查过,大概率是你的本地开发环境(Kotlin/Android Gradle插件版本)和项目依赖的flutter_image_compress_common模块要求的JVM目标版本不兼容导致的——这个依赖指定了JVM target 21,但你的环境里的工具还不支持这个版本。

先把你遇到的错误信息贴出来方便对照:

FAILURE: Build failed with an exception.

  • What went wrong: Could not determine the dependencies of task ':flutter_image_compress_common:compileDebugKotlin'.

Unknown Kotlin JVM target: 21

给你几个实用的解决步骤,按顺序试就行:

  • 更新Kotlin和Android Gradle插件(AGP)版本
    找到项目根目录下的项目级build.gradle(不是app模块的那个),定位到ext.kotlin_version和AGP依赖行,把它们更新到支持JVM 21的版本:

    buildscript {
        ext.kotlin_version = '1.9.20' // *Kotlin 1.9+*才支持JVM 21,选最新稳定版也可以
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            classpath "com.android.tools.build:gradle:8.2.0" // *AGP 8.0+*支持JVM 21,版本要和Kotlin匹配
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
  • 同步Gradle wrapper版本
    打开gradle/wrapper/gradle-wrapper.properties,把distributionUrl改成和AGP版本对应的Gradle版本,比如AGP 8.2对应Gradle 8.2:

    distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
    
  • 临时绕过方案(不推荐长期使用)
    如果暂时不想做整体版本升级,也可以在app模块的build.gradle里添加配置,强制把JVM target设为你的环境支持的版本(比如17):

    android {
        // 其他原有配置...
        kotlinOptions {
            jvmTarget = "17"
        }
    }
    
  • 清理缓存重新构建
    最后别忘了执行flutter clean,再跑flutter pub get,把旧的构建缓存清干净后重新运行项目,确保新的版本配置完全生效。

备注:内容来源于stack exchange,提问作者Pantastix

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 16:40:28