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

Flutter构建报错:Java与Kotlin JVM目标版本不兼容,升级至17遇阻

解决Flutter项目JVM目标版本不兼容问题

为什么修改android/app/build.gradle无效?

  • 你安装的第三方Flutter插件可能在项目级android/build.gradle中定义了全局JVM目标配置,或是插件自身的gradle脚本强制覆盖了app模块的设置,导致你在app/build.gradle里的修改被忽略。
  • Flutter默认会从项目根目录的gradle.properties读取全局JVM参数,如果这里的配置和app/build.gradle冲突,会优先使用全局配置,也会造成局部修改无效。

需要调整的文件及操作步骤

1. 全局配置文件:gradle.properties

在项目根目录的gradle.properties中添加/修改以下参数,强制统一JVM目标版本为17:

org.gradle.java.home=/你的JDK17安装路径 # 替换为实际路径,比如Windows下的C:\Program Files\Java\jdk-17,Mac下的/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
android.compileOptions.sourceCompatibility=17
android.compileOptions.targetCompatibility=17
kotlin.jvmTarget=17

2. 项目级android/build.gradle

在buildscript块的ext属性中统一配置版本参数,并全局设置Kotlin编译的JVM目标:

buildscript {
    ext {
        kotlin_version = '1.9.0' // 需使用支持JDK17的Kotlin版本,建议选适配的高版本
        compileSdkVersion = 34
        minSdkVersion = 21
        targetSdkVersion = 34
        javaVersion = JavaVersion.VERSION_17
    }
    // 其他原有配置...
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
    // 全局统一Kotlin编译的JVM目标
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = "17"
        }
    }
}

3. 模块级android/app/build.gradle

在android块下明确指定Java编译选项,并同步Kotlin配置:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility rootProject.ext.javaVersion
        targetCompatibility rootProject.ext.javaVersion
    }

    kotlinOptions {
        jvmTarget = rootProject.ext.javaVersion.toString()
    }

    // 其他原有配置...
}

4. 清理缓存并重建

执行以下操作确保配置生效:

  • 点击Android Studio工具栏的File > Invalidate Caches...,勾选Invalidate and Restart重启IDE。
  • 在终端运行命令:flutter clean && flutter pub get && flutter build apk(按需替换为你需要的构建命令)

额外注意点

  • 检查你安装的第三方插件的gradle配置,部分插件可能硬编码了JVM目标版本,这种情况下需要查看插件文档确认是否有适配JDK17的版本,或联系作者更新。
  • 确认Android Studio的项目SDK已切换到JDK17:File > Project Structure > Project Settings > Project,将SDK Location中的JDK路径设置为JDK17的安装目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:54:52