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的环境:
- 修改
android/app/build.gradle中的配置:
android { // 其他已有配置... compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } }
- 在
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
相关产品推荐
相关产品推荐

