Flutter项目引入Firebase后无法构建APK,疑Gradle配置错误
问题排查与解决方案
问题根源
你的Gradle配置存在版本冲突和不一致的地方,这是导致Kotlin编译报错的主要原因:
- 项目级Gradle里,
buildscript块使用的Android Gradle Plugin(AGP)版本是7.6,但plugins块中声明的com.android.application版本却是8.3.1,两个版本不匹配 - 应用级Gradle未明确指定Kotlin版本,虽理论上可继承项目级变量,但存在潜在引用风险
compileSdkVersion与targetSdkVersion版本不一致,且未匹配Firebase BOM推荐的最低版本
分步修复方案
1. 统一Android Gradle Plugin版本
修改项目级build.gradle,让buildscript和plugins块的AGP版本保持一致,这里统一使用与你初始可正常构建的版本匹配的7.6.0:
buildscript { ext.kotlin_version = '1.9.23' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.6.0' // 明确小版本号 classpath 'com.google.gms:google-services:4.4.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } plugins { id 'com.android.application' version '7.6.0' apply false // 与buildscript中AGP版本对齐 id 'com.google.gms.google-services' version '4.4.1' apply false } // 其余内容保持不变
2. 修正应用级Gradle配置
修改应用级build.gradle,同步版本并补全必要依赖:
plugins { id 'com.android.application' id 'com.google.gms.google-services' id 'kotlin-android' } android { namespace "com.berksport_app" compileSdkVersion 34 // 升级到Firebase BOM 32.8.0推荐版本(也可保持33,但需同步targetSdk) targetSdkVersion 34 // 与compileSdkVersion保持一致 defaultConfig { minSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } kotlinOptions { jvmTarget = '1.8' } } dependencies { implementation(platform("com.google.firebase:firebase-bom:32.8.0")) implementation 'androidx.appcompat:appcompat-resources:1.6.1' implementation("com.google.firebase:firebase-auth") implementation("com.google.firebase:firebase-firestore") implementation 'com.google.firebase:firebase-crashlytics' // 补充Crashlytics核心依赖 implementation 'com.google.firebase:firebase-crashlytics-buildtools:2.9.9' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.23" // 直接指定版本,避免变量引用问题 }
3. 清理缓存并重新构建
执行以下命令清理缓存后重新构建项目:
flutter clean flutter pub get cd android ./gradlew clean build --warning-mode all
额外注意事项
- 确保Flutter SDK版本与AGP版本兼容:Flutter 3.10+推荐使用AGP 7.4+,若你的Flutter版本较旧,可尝试将AGP降级至
7.4.2 - 检查Firebase控制台下载的
google-services.json文件已正确放置在android/app目录下 - 若仍存在Kotlin编译错误,可尝试将Kotlin版本降级至
1.8.22(与AGP 7.6更匹配的稳定版本)
内容的提问来源于stack exchange,提问作者lukasvdijk
相关产品推荐
相关产品推荐

