Flutter项目JVM目标兼容性不一致问题求助
问题:Flutter依赖更新后JVM目标兼容性冲突
错误详情
* What went wrong: Execution failed for task ':flutter_google_places_sdk_android:compileDebugKotlin'. > Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (1.8) and 'compileDebugKotlin' (17). Consider using JVM Toolchain: https://kotl.in/gradle/jvm/toolchain Learn more about JVM-target validation: https://kotl.in/gradle/jvm/target-validation
已尝试的配置
在模块级build.gradle中添加了以下JVM版本配置,但问题未解决:
compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = JavaVersion.VERSION_17 } kotlin { jvmToolchain(17) } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 }
环境信息
Flutter核心环境
[✓] Flutter (Channel stable, 3.13.6, on macOS 13.2.1 22D68 darwin-x64, locale en-AU) • Flutter version 3.13.6 on channel stable at /Users/sophiahuynh/Documents/_gitLabProjects/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision ead455963c (8 weeks ago), 2023-09-26 18:28:17 -0700 • Engine revision a794cf2681 • Dart version 3.1.3 • DevTools version 2.25.0
Android开发环境
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/sophiahuynh/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • Java binary at: /Users/sophiahuynh/Library/Java/JavaVirtualMachines/jbrsdk-17.0.9/Contents/Home/bin/java • Java version OpenJDK Runtime Environment JBR-17.0.9+7-1087.3-nomod (build 17.0.9+7-b1087.3) • All Android licenses accepted. [✓] Android Studio (version 2022.3) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
额外环境说明
- Java版本:17.0.9(Java Home、Android Studio Gradle JDK均使用该版本)
- Gradle版本:8.4(8.0版本时同样触发问题)
- Kotlin版本:1.9.20(1.8.0版本时同样触发问题)
解决方案
问题根源是第三方依赖flutter_google_places_sdk_android内部的Java编译目标(1.8)与Kotlin编译目标(17)不统一,你修改的是自身项目配置,未覆盖依赖内部的配置。可通过以下方式解决:
方案1:强制所有子模块统一JVM目标
在项目根目录的**项目级build.gradle**中添加以下配置,强制所有模块(包括第三方依赖)对齐JVM版本:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { project.android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } } } project.plugins.withType(org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper) { project.kotlin { jvmToolchain(17) } } } }
方案2:调整依赖版本
检查flutter_google_places_sdk的版本,尝试升级到最新稳定版,或降级至之前无问题的版本。在pubspec.yaml中指定版本:
dependencies: flutter_google_places_sdk: ^<兼容版本号>
方案3:清理缓存后重建
执行以下命令清理缓存,避免旧配置残留:
flutter clean rm -rf ~/.gradle/caches flutter pub get flutter run
内容的提问来源于stack exchange,提问作者saphies
相关产品推荐
相关产品推荐

