Flutter打包AAB时出现Java与Kotlin JVM目标版本兼容错误
解决方案
1. 强制所有模块统一JVM目标版本
第三方库的gradle配置可能会覆盖你项目级的设置,所以需要在项目根目录的android/build.gradle中添加配置,强制所有子模块(包括依赖库)使用相同的JVM版本:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } } } }
若坚持使用JDK 1.8,可将
VERSION_17替换为VERSION_1_8,jvmTarget改为'1.8'。但Kotlin 1.9.0推荐搭配JDK 17使用,兼容性更好。
2. 配置全局Gradle属性
在android/gradle.properties中添加以下配置,确保全局JVM版本统一:
org.gradle.java.home=/path/to/your/jdk17 kotlin.jvm.target.version=17 android.compileSdkVersion=34
替换
/path/to/your/jdk17为本地JDK 17的实际路径,比如Windows下为C:\\Program Files\\Java\\jdk-17,Mac下为/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home。
3. 清除缓存重新构建
旧缓存可能导致配置不生效,执行以下命令清理后重新打包:
flutter clean rm -rf android/.gradle flutter build appbundle
4. 升级第三方库版本
检查pubspec.yaml中agora_uikit和emoji_picker_flutter的版本,升级到最新稳定版,新版本通常会适配更高版本的Kotlin和JDK:
dependencies: agora_uikit: ^latest_version emoji_picker_flutter: ^latest_version
执行flutter pub get更新依赖。
内容的提问来源于stack exchange,提问作者OGY
相关产品推荐
相关产品推荐

