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

Flutter升级后games_services插件Kotlin编译任务失败求助

解决Flutter 3.19.2下games_services插件JVM目标兼容性冲突问题

问题核心

升级Flutter到3.19.2后,games_services:^4.0.1插件构建时出现JVM目标版本不一致错误:Java编译目标为1.8,而Kotlin编译目标为21,导致任务:games_services:compileDebugKotlin执行失败。

解决方案

方案1:统一项目JVM目标版本到更高版本(推荐)

将项目的Java和Kotlin编译目标统一升级到JDK 17(或21,需对应本地安装的JDK版本),适配Gradle 8.3和Kotlin 1.9.23的环境:

  1. 修改android/app/build.gradle中的配置:
android {
    // 其他已有配置...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }
}
  1. 在android/build.gradle中添加JVM工具链配置,确保Gradle使用对应版本的JDK:
android {
    // 其他已有配置...
    java {
        toolchain {
            languageVersion = JavaLanguageVersion.of(17)
        }
    }
}

注意:需确保本地已安装JDK 17或更高版本,可通过java -version命令检查版本,或在Android Studio的File > Project Structure > SDK Location中设置正确的JDK路径。

方案2:强制覆盖插件的JVM目标版本

如果不想升级项目的Java版本,可在项目的android/build.gradle中添加配置,强制修改games_services插件的编译目标:

subprojects {
    if (project.name == 'games_services') {
        afterEvaluate {
            // 统一Kotlin编译目标
            tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
                kotlinOptions {
                    jvmTarget = '1.8'
                }
            }
            // 统一Java编译目标
            android {
                compileOptions {
                    sourceCompatibility JavaVersion.VERSION_1_8
                    targetCompatibility JavaVersion.VERSION_1_8
                }
            }
        }
    }
}

方案3:升级games_services插件到最新版本

检查插件是否有适配Flutter 3.19的更新版本,修改pubspec.yaml中的依赖:

dependencies:
  games_services: ^最新版本号

执行flutter pub get更新插件后重新构建项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:52:41