Flutter 3.0.5下Android Release构建Kotlin版本不兼容问题求解
解决Flutter 3.0.5构建APK时Kotlin版本不兼容问题
核心原因
你遇到的问题是Flutter 3.0.5默认的Gradle环境与升级后的Kotlin 1.7.20存在适配断层,即使手动升级了Kotlin版本,项目依赖的传递依赖、Gradle插件配置仍可能保持旧的版本约束,导致元数据版本不匹配。以下是无需升级Flutter的可行解决方案:
解决方案步骤
1. 统一Android项目的Gradle与Kotlin配置
打开项目根目录下的android/build.gradle文件,确保Gradle插件版本与Kotlin 1.7.20适配,同时明确指定Kotlin版本:
buildscript { ext.kotlin_version = '1.7.20' repositories { google() mavenCentral() } dependencies { // Flutter 3.0.5适配的Gradle插件版本,需与Kotlin 1.7.20匹配 classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
2. 强制所有依赖使用统一的Kotlin标准库
在android/app/build.gradle的dependencies代码块上方添加版本强制规则,避免第三方插件的传递依赖引入不一致的Kotlin版本:
configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:1.7.20" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20" force "org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20" } }
3. 彻底清理缓存并重新构建
执行以下命令,确保旧的缓存配置被完全清除:
flutter clean # Mac/Linux用户清理Gradle全局缓存 rm -rf ~/.gradle/caches # Windows用户手动删除C:\Users\<你的用户名>\.gradle\caches目录 flutter pub get flutter build apk --release
4. 降级冲突的第三方插件(备选方案)
如果上述步骤无效,说明你使用的share_plus、package_info_plus等插件的新版本是用Kotlin 1.7编译的,与Flutter 3.0.5环境不兼容。可以在pubspec.yaml中切换到这些插件兼容Kotlin 1.5.x的旧版本:
dependencies: share_plus: ^4.0.10 package_info_plus: ^1.4.3 fluttertoast: ^8.0.9 path_provider: ^2.0.11
注意:需确认这些旧版本与Flutter 3.0.5的兼容性。
内容的提问来源于stack exchange,提问作者Jun
相关产品推荐
相关产品推荐

