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

MacBook端Android Studio报Unknown Kotlin JVM target:21错误求助

问题描述

在MacBook上使用最新版Android Studio(LadyBug)时,出现以下错误:

Could not determine the dependencies of task ':image_gallery_saver:compileDebugKotlin'.

Unknown Kotlin JVM target: 21

之前在Windows端遇到相同错误时,通过下载JDK 17并在android/gradle.properties中配置org.gradle.java.home = D:\jdk-17解决,但在Mac上配置export=JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home后,错误依然存在。

当前Android/app/build.gradle相关配置如下:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8" // I tried to change this
    }

    defaultConfig {
        applicationId ".."
        minSdkVersion 24 
        compileSdkVersion 34
        targetSdkVersion 34
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        ndkVersion >>
        ndk {
            debugSymbolLevel 'FULL'
        }
    }
解决方法

1. 正确配置Mac上的JAVA_HOME

  • 全局持久化配置:打开终端,编辑~/.zshrc(使用bash则编辑~/.bash_profile),添加:
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    
    保存后执行source ~/.zshrc使配置生效,输入echo $JAVA_HOME验证路径是否正确。
  • 项目级配置:在项目的android/gradle.properties中添加:
    org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
    
    该配置会强制Gradle使用指定JDK,比终端临时配置更可靠。

2. 统一项目Kotlin JVM目标版本

错误提示的JVM target:21大概率是依赖(如image_gallery_saver)使用了更高目标版本,需在项目根目录的build.gradle(非app模块)中统一配置:

buildscript {
    ext.kotlin_version = '1.9.20' // 匹配Android Studio LadyBug兼容的Kotlin版本
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:8.2.0" // 对应LadyBug的Gradle版本
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = "17" // 改为与JDK17匹配的版本,不要用1.8
        }
    }
}

同时将app模块build.gradle中的kotlinOptions.jvmTarget也改为"17",保持全局一致。

3. 清理缓存并重新同步

  • 执行File > Invalidate Caches... > Invalidate and Restart重启Android Studio
  • 进入项目android目录,终端执行./gradlew clean清理构建缓存后,重新同步项目

4. 检查依赖版本

尝试升级image_gallery_saver到最新版本,或在pubspec.yaml中指定与当前环境兼容的版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:53:16