我使用的是在AndroidManifest中设置API键所需的一个服务,如下所示:
<meta-data
android:name="service_api_key"
android:value="@string/my_api_key" />问题是,我有几种口味的应用程序,我需要为每种口味设置不同的API键。对于调试和发布,每种风格都需要有不同的API键:
flavor1
- debug key: key1
- release key: key2
flavor2
- debug key: key3
- release key: key4
flavor3
- debug key: key5
- release key: key6实现这一目标的推荐方法是什么?
发布于 2016-01-21 16:32:20
实现这一目标的推荐方法是什么?
步骤1:为每个构建变量(src/flavor1Debug/、src/flavor1Release/等)创建src/flavor1Debug/为此,您需要一个不同于在src/main/中拥有的API密钥。
步骤2:在每个源集中,有一个res/values/strings.xml文件,其中包含构建变体的my_api_key值。
第三步:啤酒。
发布于 2016-01-21 16:35:25
没有测试但我想你可以试试这样的东西..。
applicationVariants.all {variants ->
variant.productFlavors.all { flavor ->
flavorChoosed = " ${flavor.name}"
}
}
release {
switch(flavorChoosed){
case "flavor1":
resValue "string", "flavorId", apiKeyRealeseFlavor1
break
.....
}
}
debug{
switch(flavorChoosed){
case "flavor1":
resValue "string", "flavorId", apiKeyDebugFlavor1
break
.....
}
}
<meta-data
android:name="service_api_key"
android:value="${flavorId}" />发布于 2016-01-21 16:37:19
对于添加到gradle文件中的每个产品风味,您应该为值添加一个string.xml资源文件。
当您切换构建变体时,Android将足够聪明地获取构建的匹配值。
如果您没有指定一个,那么它默认为主一个。
编辑:

然后,对于源集,选择productFlavor的发行版或调试版本:

https://stackoverflow.com/questions/34928868
复制相似问题