You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio打包Release版本时Google Maps API Key未切换求助

解决Android Studio构建Release版本时始终使用Debug Maps API Key的问题

我完全懂你这种明明配置了正确的Release Key,却死活不生效的挫败感!咱们一步一步来搞定这个问题:

1. 确认Module级build.gradle的正确配置(推荐方式)

最靠谱的做法是通过Gradle的buildTypes来动态生成对应变体的API Key,这样就不会出现手动配置的冲突。打开你的Module级build.gradle(不是Project级的),确保buildTypes块里有如下配置:

android {
    // ...其他配置
    buildTypes {
        debug {
            // 生成Debug版本的google_maps_key字符串资源
            resValue "string", "google_maps_key", "YOUR_DEBUG_API_KEY_HERE"
        }
        release {
            // 生成Release版本的google_maps_key字符串资源
            resValue "string", "google_maps_key", "YOUR_RELEASE_API_KEY_HERE"
            // 按需开启混淆,不影响API Key的加载逻辑
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

配置完后,不需要手动在src/debugsrc/release目录下创建strings.xml,Gradle会自动在构建时生成对应的资源。

2. 检查Manifest中的引用是否正确

确保你的AndroidManifest.xml里的Maps API Key引用是动态的,不要写死具体Key值:

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

你之前遇到的“写死Key后构建Release版本自动变回@string/google_maps_key”,是因为Gradle的resValue配置会自动接管这个字符串资源的生成,覆盖你手动写的硬编码值——这其实是正常的预期行为,咱们要利用这个机制来实现多变体的Key切换。

3. 确保选择了正确的构建变体

很多时候问题出在构建变体没切换!打开Android Studio右侧的Build Variants面板(找不到的话可以通过View > Tool Windows > Build Variants打开),确认你的模块对应的构建变体是release,而不是debug

4. 清理缓存并重建项目

缓存残留是常见的坑,执行以下步骤彻底清理:

  • 点击顶部菜单栏的Build > Clean Project
  • 待清理完成后,点击Build > Rebuild Project
  • 也可以尝试删除项目根目录下的.gradlebuild目录,然后重新点击Sync Project with Gradle Files按钮同步配置

5. 再次验证Release API Key的限制配置

虽然你说已经严格限制,但再核对一遍避免疏漏:

  • 确保Google Cloud控制台中,Release Key的SHA-1指纹是你发布用的签名证书的指纹(不是debug证书的!),可以用以下命令获取:
    keytool -list -v -keystore /path/to/your/release/keystore.jks
    
  • 确认包名和你应用的正式包名完全一致,大小写都不能错

做完以上步骤后,重新构建Release版本,应该就能正确加载你的Release API Key了!

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

火山引擎 最新活动