Flutter Android端Gradle构建失败求助:clean任务重复+compileSdkVersion未指定
问题:Flutter集成Firebase后Android端Gradle构建失败
此前因AndroidManifest.xml文件报错,按Firebase指引将代码、pubspec.yaml迁移至新创建的应用,完成app级和project级gradle依赖/插件集成,并放置google-services.json文件。Web端可正常运行,但Android端Gradle构建报错,使用ChatGPT生成的gradle配置仍无法解决。
错误信息
Launching lib\main.dart on sdk gphone64 x86 64 in debug mode... FAILURE: Build completed with 2 failures. 1: Task failed with an exception. ----------- * Where: Build file 'C:\Hussain\applications\instagram\android\app\build.gradle' line: 36 * What went wrong: A problem occurred evaluating project ':app'. > Cannot add task 'clean' as a task with that name already exists. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. ============================================================================== 2: Task failed with an exception. ----------- * What went wrong: A problem occurred configuring project ':app'. > Failed to notify project evaluation listener. > com.android.builder.errors.EvalIssueException: compileSdkVersion is not specified. Please add it to build.gradle > Cannot invoke method substring() on null object * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. ============================================================================== * Get more help at https://help.gradle.org BUILD FAILED in 5s Error: Gradle task assembleDebug failed with exit code 1 Exited (1).
错误原因分析
- 重复clean任务:app级和project级gradle文件都注册了
clean任务,与Flutter默认提供的clean任务冲突。 - gradle配置结构错误:app级gradle中混入了属于project级的配置(如
buildscript、allprojects),导致Android块的compileSdkVersion未被正确识别;同时flutterVersionCode/flutterVersionName的传递逻辑因结构错误失效,引发空指针异常。
修复后的gradle配置
project/build.gradle
buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.0.2' classpath 'com.google.gms:google-services:4.3.10' } } allprojects { repositories { google() mavenCentral() } } // 移除重复的clean任务注册,Flutter默认已包含该任务
app/build.gradle
plugins { id 'com.android.application' id 'kotlin-android' id 'dev.flutter.flutter-gradle-plugin' id 'com.google.gms.google-services' // 调整至flutter插件之后加载 } android { compileSdkVersion 34 ndkVersion flutter.ndkVersion defaultConfig { applicationId "com.example.instagram" minSdkVersion 21 targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } buildTypes { release { signingConfig signingConfigs.debug } } } flutter { source '../..' } dependencies { implementation platform('com.google.firebase:firebase-bom:33.1.1') implementation 'com.google.firebase:firebase-analytics' }
关键修复点
- 移除两处重复的
tasks.register('clean', Delete)配置,避免任务冲突。 - 清理app级gradle中的冗余配置(
buildscript、allprojects等),保持配置层级正确。 - 调整Firebase插件加载顺序,确保在Flutter插件之后加载,避免配置识别异常。
- 添加
ndkVersion flutter.ndkVersion,与Flutter默认配置对齐,消除潜在的NDK版本问题。
内容的提问来源于stack exchange,提问作者Hussain Mohiuddin
相关产品推荐
相关产品推荐

