首次构建Flutter APK遇Kotlin版本不兼容等编译错误求助
Flutter构建APK时Kotlin版本不兼容问题解决方法
问题概述
构建APK时出现两类问题:一是Cloud Firestore相关的未检查操作/废弃API警告,二是核心的Kotlin版本不兼容错误——依赖库用Kotlin 1.8编译,但项目预期1.6版本,直接导致构建失败。
错误日志:
注意:C:\Users\emree\AppData\Local\Pub\Cache\hosted\pub.dev\cloud_firestore-4.8.2\android\src\main\java\io\flutter\plugins\firebase\firestore\FlutterFirebaseFirestoreMessageCodec.java 使用了未检查或不安全的操作。 注意:使用 -Xlint:unchecked 重新编译以获取详细信息。 注意:部分输入文件使用或覆盖了已废弃的API。 注意:使用 -Xlint:deprecation 重新编译以获取详细信息。 注意:部分输入文件使用了未检查或不安全的操作。 注意:使用 -Xlint:unchecked 重新编译以获取详细信息。 错误:C:/Users/emree/.gradle/caches/transforms-3/72df06c27832244e71a8d7932e11da7a/transformed/jetified-activity-1.7.2/jars/classes.jar!/META-INF/activity_release.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/transforms-3/33d3003110b9f0c6d9e3287deb0d08ba/transformed/lifecycle-livedata-2.6.1/jars/classes.jar!/META-INF/lifecycle-livedata_release.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/transforms-3/5ed0c64b8ae75bc697a28e51473932ba/transformed/lifecycle-viewmodel-2.6.1/jars/classes.jar!/META-INF/lifecycle-viewmodel_release.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/transforms-3/1e2b255d05f5b0445af115aded5dad98/transformed/lifecycle-livedata-core-2.6.1/jars/classes.jar!/META-INF/lifecycle-livedata-core_release.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/transforms-3/2d0e4d85d0a8f074d6dc8af837bae271/transformed/jetified-lifecycle-viewmodel-savedstate-2.6.1/jars/classes.jar!/META-INF/lifecycle-viewmodel-savedstate_release.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/transforms-3/f050be65d5fee3c4f04961b330574447/transformed/jetified-core-ktx-1.10.1/jars/classes.jar!/META-INF/core-ktx_release.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar!/META-INF/kotlin-stdlib.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar!/META-INF/kotlin-stdlib-jdk8.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。 错误:C:/Users/emree/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.8.22/1a8e3601703ae14bb58757ea6b2d8e8e5935a586/kotlin-stdlib-common-1.8.22.jar!/META-INF/kotlin-stdlib-common.kotlin_module:模块使用不兼容的Kotlin版本编译。其元数据的二进制版本为1.8.0,预期版本为1.6.0。
解决步骤
1. 统一项目Kotlin版本
打开项目根目录下的android/build.gradle文件,找到buildscript块中的ext.kotlin_version,将其修改为与依赖库一致的1.8.22:
buildscript { ext.kotlin_version = '1.8.22' repositories { google() mavenCentral() } dependencies { // 确保Gradle插件版本与Kotlin兼容,7.4.2适配Kotlin 1.8.x classpath "com.android.tools.build:gradle:7.4.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
修改后执行flutter pub get同步项目。
2. 清理缓存并重新构建
执行以下命令彻底清理缓存并重新构建:
flutter clean # Windows用户替换为:rmdir /s /q .android .gradle rm -rf .android .gradle flutter pub get flutter build apk
3. 处理Cloud Firestore警告(可选)
这些警告不影响构建成功,若要消除:
- 在
pubspec.yaml中更新cloud_firestore到最新兼容版本,例如:dependencies: cloud_firestore: ^4.17.1 - 执行
flutter pub get更新依赖
内容的提问来源于stack exchange,提问作者emre12345
相关产品推荐
相关产品推荐

