执行flutter build apk --release时Kotlin版本不兼容问题求助
解决Flutter构建APK时的Kotlin版本不兼容问题
执行flutter build apk --release时出现的Module was compiled with an incompatible version of Kotlin. Binary version of its metadata is 1.8.0, expected version is 1.6.0错误,核心原因是Kotlin插件版本未正确配置、项目内版本不一致,结合你的配置文件,按以下步骤修复:
1. 修复android/build.gradle的Kotlin插件依赖
你的buildscript块里注释掉了Kotlin Gradle插件的依赖,导致Gradle无法正确识别指定的Kotlin版本,取消注释并统一版本:
修改后的android/build.gradle:
buildscript { ext.kotlin_version = '1.8.10' // 和settings.gradle里的版本对齐 repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
2. 对齐settings.gradle的Kotlin版本
确保settings.gradle里的Kotlin插件版本和buildscript里的ext.kotlin_version完全一致:
修改后的settings.gradle相关片段:
plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.3.0" apply false id "org.jetbrains.kotlin.android" version "1.8.10" apply false // 和build.gradle版本统一 }
3. 强制所有子项目使用统一Kotlin版本(关键)
部分第三方Flutter插件可能内置不同版本的Kotlin依赖,导致冲突,在android/build.gradle末尾添加以下代码强制统一:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { project.android { compileSdkVersion flutter.compileSdkVersion kotlinOptions { jvmTarget = '1.8' } } } configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" force "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" } } } }
4. 清理缓存并重新构建
执行以下命令清除旧缓存,避免依赖残留:
flutter clean rm -rf android/.gradle android/build ios/Pods ios/Podfile.lock flutter pub get flutter build apk --release
如果问题仍存在,建议升级Flutter SDK到稳定版(执行flutter upgrade),旧版Flutter对高版本Kotlin的兼容性较差。
内容的提问来源于stack exchange,提问作者Deepankar Varma
相关产品推荐
相关产品推荐

