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

Flutter项目中@string/GOOGLE_MAPS_API_KEY存储及转换方式问询

关于Flutter中Google Maps API密钥配置的疑问解答

1. @string/GOOGLE_MAPS_API_KEY的来源与存储位置

@string/GOOGLE_MAPS_API_KEY是Android项目的字符串资源,默认存储路径为android/app/src/main/res/values/strings.xml。但由于你要避免密钥硬编码进版本控制,不会手动在这个文件里写死密钥值——它的实际值是通过Gradle构建脚本动态注入的,构建完成后会存在于生成的临时资源文件中(无需手动编辑strings.xml)。

2. .env文件中的密钥如何转换为@string/GOOGLE_MAPS_API_KEY

整个流程通过Android端Gradle脚本读取.env文件,再动态生成对应的字符串资源,具体步骤如下:

  • 第一步:准备.env文件
    在Flutter项目根目录创建.env文件,写入密钥:

    GOOGLE_MAPS_API_KEY=你的实际Google Maps API密钥
    

    同时将.env添加到项目的.gitignore文件中,防止密钥被提交到版本控制。

  • 第二步:配置Gradle读取并注入密钥
    打开android/app/build.gradle文件,在android块的defaultConfig中添加动态生成字符串资源的代码:

    // 读取根目录的.env文件
    def envFile = file("../../.env")
    def envProps = new Properties()
    if (envFile.exists()) {
        envProps.load(new FileInputStream(envFile))
    }
    
    android {
        // 保留原有配置
        defaultConfig {
            // 保留原有配置
            // 动态生成@string/GOOGLE_MAPS_API_KEY资源
            resValue "string", "GOOGLE_MAPS_API_KEY", envProps.getProperty("GOOGLE_MAPS_API_KEY", "")
        }
    }
    

    这段代码会在构建时读取.env文件中的密钥,自动生成对应的字符串资源,无需手动修改strings.xml。

  • 第三步:在AndroidManifest.xml中引用
    保持原有引用方式即可:

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/GOOGLE_MAPS_API_KEY"/>
    

每次构建项目时,Gradle都会自动把.env里的密钥注入到@string/GOOGLE_MAPS_API_KEY中,既避免了硬编码,也不会把密钥提交到版本控制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:42:46