You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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
}

额外优化与检查

  1. 替换仓库源:将jcenter()替换为mavenCentral(),JCenter已停止维护,Gradle 7+版本推荐使用Maven Central作为仓库源。
  2. 配置隔离:通过plugins.withId精准过滤Android应用和库模块,避免对非Android项目执行android()方法。
  3. 缓存清理:执行flutter clean清除本地构建缓存,再重新运行flutter run。
  4. 版本兼容:确保Flutter SDK版本(需2.8+)与Android Gradle插件7.0.1兼容,可通过flutter --version确认当前SDK版本。

内容的提问来源于stack exchange,提问作者Malik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:05:08