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

Flutter编译报错:compileDebugJava与compileDebugKotlin JVM目标版本不一致

解决:flutter_logs:compileDebugKotlin任务失败的JVM版本兼容性问题

问题根源

仅在android/app/build.gradle中配置JVM版本无法覆盖第三方依赖flutter_logs的模块配置,该模块默认使用JVM 17编译,与你的App模块指定的1.8版本冲突。

可行解决方案

方案1:全局统一所有模块的JVM版本

在项目根目录的build.gradle文件中添加全局配置,强制所有模块(包括第三方依赖)使用JVM 1.8:

allprojects {
    repositories {
        // 保留原有仓库配置
    }

    // 统一Kotlin编译的JVM目标
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = '1.8'
        }
    }

    // 统一Java编译的版本兼容性
    tasks.withType(JavaCompile).configureEach {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

方案2:单独为flutter_logs模块配置JVM版本

如果不想全局修改,可在android/app/build.gradle中单独指定该依赖模块的编译版本:

project(':flutter_logs') {
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = '1.8'
        }
    }

    tasks.withType(JavaCompile).configureEach {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

方案3:升级项目JVM版本到17(长期推荐)

若项目环境允许,直接将App模块的JVM版本升级至17,与flutter_logs保持一致:
在android/app/build.gradle中修改配置:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }
}

收尾操作

执行以下命令清理缓存并重新编译:

flutter clean
flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 16:32:36