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

Gradle与Flutter版本兼容问题:跨平台编译失败求助

解决Flutter Gradle插件过时及flutterVersionCode识别错误问题

问题根源

  1. 配置文件混淆:你将Flutter项目中**根目录android/build.gradle和app模块android/app/build.gradle**的内容混写在一起,根目录的build.gradle是全局配置文件,不应包含android闭包(这是app模块的专属配置)。
  2. 插件应用不规范:未使用声明式plugins块正确引入Flutter Gradle插件,导致过时警告。
  3. 属性作用域错误:flutterVersionCode是Flutter插件注入到app模块的属性,根项目无法直接访问,这是编译报错的核心原因。

解决方案

1. 修正根目录android/build.gradle

该文件仅负责全局插件版本声明和仓库配置,修改后内容如下:

plugins {
    // 声明Android插件版本,不直接应用
    id 'com.android.application' version '8.5.0' apply false
    // 声明Kotlin插件版本,不直接应用
    id 'org.jetbrains.kotlin.android' version '1.9.23' apply false
    // 声明Google Services插件版本,不直接应用
    id 'com.google.gms.google-services' version '4.4.2' apply false
    // 声明Flutter Gradle插件版本(需与你的Flutter SDK版本匹配,例如Flutter 3.22对应7.4.3)
    id 'dev.flutter.flutter-gradle-plugin' version '7.4.3' apply false
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}

subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}

2. 修正app模块android/app/build.gradle

该文件负责应用具体插件和配置Android项目,修改后内容如下:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    // 应用Flutter Gradle插件
    id 'dev.flutter.flutter-gradle-plugin'
    // 应用Google Services插件
    id 'com.google.gms.google-services'
}

android {
    compileSdkVersion 34
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.semenov.australia"
        minSdkVersion 16
        targetSdkVersion 34
        // 这里可以正常使用flutter注入的版本属性
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    buildFeatures {
        viewBinding true
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.23"
    // 其他项目依赖(如Firebase组件)可添加在此处
}

3. 清理缓存并重新构建

执行以下命令彻底清理缓存,避免旧配置干扰:

flutter clean
flutter pub get
cd android && ./gradlew clean
cd .. && flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:45:57