Flutter 1.22.6下Cloud Firestore 0.16.0+1因AndroidX兼容性导致构建失败的问题
解决Flutter 1.22.6 + cloud_firestore 0.16.0+1运行时firebase_auth编译失败问题
我之前在使用旧版Flutter搭配Firebase插件时,踩过几乎一模一样的坑,结合你的环境来看,核心原因确实是AndroidX兼容性冲突,Jetifier自动转换时出了问题。下面是我亲测有效的解决步骤:
1. 确保AndroidX和Jetifier配置正确
打开项目根目录下的android/gradle.properties文件,检查是否包含以下两行配置(如果没有就添加):
android.useAndroidX=true android.enableJetifier=true
Jetifier的作用就是自动把第三方库的旧Android支持库转换为AndroidX,这一步是解决兼容性问题的基础。
2. 匹配Gradle和Android Gradle Plugin版本
Flutter 1.22.6对Gradle版本有特定要求,版本不匹配会直接导致编译失败:
- 打开
android/build.gradle,修改buildscript里的依赖版本:buildscript { repositories { google() jcenter() } dependencies { // 适配Flutter 1.22.6的Android Gradle Plugin版本 classpath 'com.android.tools.build:gradle:4.0.1' // 适配你的Firebase插件版本的Google Services插件 classpath 'com.google.gms:google-services:4.3.8' } } - 接着打开
android/gradle/wrapper/gradle-wrapper.properties,修改Gradle分发URL:distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
3. 彻底清理缓存后重新构建
缓存残留也可能导致奇怪的编译问题,执行以下命令彻底清理:
flutter clean rm -rf android/.gradle rm -rf ~/.gradle/caches flutter pub get
完成后再尝试运行应用:flutter run
4. 统一Firebase插件版本
不同Firebase插件版本之间也可能存在兼容性冲突,你的cloud_firestore用的是0.16.0+1,建议搭配同版本线的firebase_auth,比如0.20.1版本,修改pubspec.yaml:
dependencies: flutter: sdk: flutter cloud_firestore: 0.16.0+1 firebase_auth: 0.20.1
修改后执行flutter pub get更新依赖。
另外要提醒的是,Flutter 1.22.6是比较旧的稳定版本,尽量不要使用太新的Firebase插件,保持插件版本和Flutter版本的匹配度,能避免很多这类兼容性问题。
内容的提问来源于stack exchange,提问作者Ahmed Wagdi
相关产品推荐
相关产品推荐

