Flutter项目升级SDK后出现Gradle android()方法找不到错误求助
解决Flutter升级SDK后Gradle构建失败(找不到android()方法)
问题原因
你遇到的构建错误,是因为在根目录build.gradle的subprojects块中直接调用android()方法,但并非所有子项目都是Android模块,Gradle无法在非Android项目中识别android配置块,因此触发报错。
解决方案
修改根目录build.gradle中的subprojects配置逻辑,仅对Android类型的子项目应用相关设置,具体代码调整如下:
buildscript { repositories { google() mavenCentral() // 替换已停止维护的jcenter() } configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' } } dependencies { classpath 'com.android.tools.build:gradle:7.0.1' } } allprojects { repositories { google() mavenCentral() // 替换已停止维护的jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" // 仅对Android应用模块配置编译参数 plugins.withId("com.android.application") { android { compileSdkVersion 31 defaultConfig { targetSdkVersion 31 } } } // 仅对Android库模块配置编译参数 plugins.withId("com.android.library") { android { compileSdkVersion 31 } } } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
额外优化与检查
- 替换仓库源:将
jcenter()替换为mavenCentral(),JCenter已停止维护,Gradle 7+版本推荐使用Maven Central作为仓库源。 - 配置隔离:通过
plugins.withId精准过滤Android应用和库模块,避免对非Android项目执行android()方法。 - 缓存清理:执行
flutter clean清除本地构建缓存,再重新运行flutter run。 - 版本兼容:确保Flutter SDK版本(需2.8+)与Android Gradle插件7.0.1兼容,可通过
flutter --version确认当前SDK版本。
内容的提问来源于stack exchange,提问作者Malik
相关产品推荐
相关产品推荐

