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

Flutter项目如何在build.gradle中添加Android Gradle插件?

Flutter Android端引入自定义Gradle插件实操方案(适配谷歌地图secrets插件场景)

核心问题原因

旧版本Flutter创建的Android项目默认使用旧版Gradle插件声明规则,直接新增plugins{}块不兼容,直接用apply plugin报错大多是因为没有提前在项目级Gradle配置中声明插件依赖。


操作步骤

1. 配置项目级Gradle文件

修改android/build.gradle文件,在buildscript的dependencies节点中添加secrets插件的依赖声明:

buildscript {
    ext.kotlin_version = '你的项目原有kotlin版本'
    repositories {
        // 必须保留google仓库,否则无法拉取谷歌官方插件
        google()
        mavenCentral()
        // 其余原有仓库配置保留即可
    }

    dependencies {
        // 原有android gradle plugin、kotlin插件依赖保留即可
        classpath "com.android.tools.build:gradle:你的项目原有AGP版本"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // 新增secrets gradle插件依赖,可根据需求更换稳定版本号
        classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
    }
}

2. 配置应用级Gradle文件

修改android/app/build.gradle文件,在原有apply plugin配置行后新增插件应用声明即可,无需新增plugins{}块:

// 原有配置保留
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

// 新增这一行即可完成插件引入
apply plugin: 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'

3. 插件功能配置(按需操作)

如果需要读取本地存储的谷歌地图API密钥,可在android/app/build.gradle中追加插件配置:

secrets {
    // 配置存储密钥的文件,默认读取local.properties
    propertiesFileName = "local.properties"
    defaultPropertiesFileName = "local.defaults.properties"
}

配置完成后即可在AndroidManifest.xml中直接通过${MAPS_API_KEY}读取local.properties中配置的密钥值。


异常排查

  • 提示找不到插件:检查android/build.gradle的repositories节点是否已添加google(),插件依赖的版本号、包名是否拼写正确
  • 应用插件后编译报错:检查Gradle版本与插件版本兼容性,secrets插件2.x版本要求Android Gradle Plugin版本≥7.0,若项目AGP版本低于7.0可将插件版本降级到1.x系列。

配置完成后即可正常接入谷歌地图Android SDK开发热力图功能,原生侧逻辑可通过MethodChannel与Flutter侧交互实现功能联动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:27:05