Android Studio – 为Gradle中的ManifestPlaceholders分配多个值

我有两个环境,我的项目一个Prod另一个是Staging.因此,每当我必须构建任何环境时,我都必须更改多个键,例如地图键,标签名称和清单中的其他内容.所以我搜索并找出一些解决方案,而manifestPlaceholders就是其中之一.

现在我想做的是在manifestPlaceholders中分配多个值.那么我可以在其中放置多个值,是的,然后如何在其中放置多个值.这是manifestPlaceholders的代码

buildTypes {
    debug {
        manifestPlaceholders = [ google_map_key:"your_dev_key"]
    }
    release {
        manifestPlaceholders = [ google_map_key:"prod_key"]
    }
}

解决方法

我通过添加多个manifestPlaceholders值来解决我的问题,如下面的代码.将此添加到我的模块build.gradle中.
productFlavors {
        staging {
            applicationId "xxxxxxxxxxx"
            manifestPlaceholders = [ google_map_key:"xxxxxxxxxx",app_label_name:"xxxxxxx"]
            buildConfigField 'String','BASE_URL','"xxxxxxxxxx"'
        }
        prod {
            applicationId "xxxxxxxxxxx"
            manifestPlaceholders = [ google_map_key:"xxxxxxxxxx",'"xxxxxxxxxx"'
        }
    }

编辑:
您也可以使用resValue作为Emanuel Moecklin在评论中提出的建议.

productFlavors {
            staging {
                applicationId "xxxxxxxxxxx"
                manifestPlaceholders = [ google_map_key:"xxxxxxxxxx",app_label_name:"xxxxxxx"]
                buildConfigField 'String','"xxxxxxxxxx"'
                resValue "string","base_url","xxxxxxxxxx"
            }
            prod {
                applicationId "xxxxxxxxxxx"
                manifestPlaceholders = [ google_map_key:"xxxxxxxxxx","xxxxxxxxxx"
            }
        }

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...