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
相关产品推荐
相关产品推荐

