AndroidManifest中Google地图API_KEY占位符未替换报错如何解决
报错根因
这个错误是Gradle在合并AndroidManifest文件时,检测到你配置的com.google.android.geo.API_KEY对应值用了占位符格式,但找不到maps key对应的实际替换值,直接中断编译。你现在Manifest里写的{maps key*****}就是占位符写法,但没有配套配置替换规则。
修复方案
二选一即可,不要混着用:
方案1:直接硬编码Key到Manifest(适合快速调试场景)
直接把meta-data标签里value属性的{maps key*****}整个删掉,替换成你在Google服务后台申请到的真实Maps API Key字符串,不要带大括号,参考配置:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="替换成你自己申请的真实API Key" />
方案2:用Gradle占位符注入Key(推荐,避免把Key提交到代码仓库)
- 打开app模块下的
build.gradle文件,在defaultConfig闭包中添加占位符配置,传入真实Key:
android { // 其他已有配置不用动 defaultConfig { // *注意占位符名称要和Manifest里引用的一致* manifestPlaceholders = [mapsKey: "你自己申请的真实API Key"] } }
- 把AndroidManifest里的meta-data配置改成引用占位符的格式:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="${mapsKey}" />
排查注意点
- 如果做了多渠道、多环境打包,要确认每个
productFlavor、buildType闭包里都给占位符传了有效值,不要漏配 - 改完配置先点Gradle同步,再Clean项目重新编译,避免旧缓存干扰
- 确认申请API Key时已经绑定了当前应用的包名和对应签名的SHA-1值,否则编译通过后地图服务也会鉴权失败
内容的提问来源于stack exchange,提问作者usama
相关产品推荐
相关产品推荐

