Flutter构建Release APK时遇:app:compileReleaseKotlin执行失败及Kotlin版本不兼容问题求助
Flutter构建Release APK时遇:app:compileReleaseKotlin执行失败及Kotlin版本不兼容问题求助
看起来你踩的是Flutter Firebase依赖和项目Kotlin版本不匹配的经典坑,我之前打包Release APK的时候也遇到过几乎一模一样的问题,给你几个亲测有效的解决方向:
方向一:升级项目的Kotlin版本,适配Firebase依赖的要求
这个是最直接的解决方案,毕竟你遇到的核心问题就是项目用的Kotlin 1.9.0和Firebase Auth依赖的Kotlin 2.1.0不兼容。具体操作步骤:
- 打开项目根目录下的
android/build.gradle文件(是外层的android文件夹里的那个,不是app子模块下的) - 找到
ext.kotlin_version这一行,把原本的1.9.0改成2.1.0(或者2.0.20这类能兼容metadata 2.1.0的版本也行) - 点击Android Studio右上角的「Sync Now」同步Gradle,然后依次执行
flutter clean、flutter pub get命令,最后再尝试构建Release APK
方向二:降级Firebase Auth到和Kotlin 1.9.0兼容的版本
如果你不想升级项目的Kotlin版本,可以找一个适配Kotlin 1.9.0的Firebase Auth Flutter版本。根据我的踩坑经验,firebase_auth: ^5.3.0或者更低的^4.16.0版本,对应的Android端Firebase Auth库是用Kotlin 1.9.0编译的,能完美适配你的项目。
注意降级的时候要确保所有Firebase依赖版本相互匹配:比如你的firebase_core用的是^3.13.1,降级firebase_auth后,最好同步调整cloud_firestore的版本,避免出现新的依赖冲突。
方向三:强制指定Android端Firebase Auth的依赖版本
如果上面两个方法都不符合你的需求,还可以直接在Android端强制指定兼容Kotlin 1.9.0的Firebase Auth版本:
- 打开
android/app/build.gradle文件 - 在
android代码块的外面,添加以下配置:
configurations.all { resolutionStrategy { force 'com.google.firebase:firebase-auth:22.3.1' } }
- 同步Gradle后,执行
flutter clean清除缓存,再尝试打包Release APK就行——这个版本的Firebase Auth是用Kotlin 1.9.0编译的,刚好能解决版本不兼容的问题
最后再提醒一句:不管你选哪个方法,操作后一定要执行flutter clean和flutter pub get,清除旧的依赖缓存再重新构建,不然很可能会因为缓存残留导致问题依旧。
内容来源于stack exchange
相关产品推荐
相关产品推荐

