android - 如何将特定变量添加到不同的调试和发布风格
问题描述
一些帮助找到如何做到这一点:我想创建一些 resValue 仅用于 1 风味,这些 resvalue 必须根据 buildtype 不同(并且只是为了安全,如果我稍后添加 buildType 并忘记管理它会生成错误以我的口味)
productFlavors{
lite{
dimension "default"
applicationIdSuffix ".lite"
//// HOW TO DO THIS ?
if(buildTypes.debug){
def banner = "my test id"
resValue "string", "ad_view_banner_footer", banner
}
else if(buildTypes.release){
def banner_footer = "my real id"
resValue "string", "ad_view_banner_footer", banner_footer
}
else "GENERATE ERROR UNKNOWN BUILDTYPES"
/// Thanks
}
full{
dimension "default"
applicationIdSuffix ".full"
}
}
谢谢
解决方案
所以我回答自己。混合使用我在这里和那里找到的东西:
flavorDimensions "default"
productFlavors{
lite{
dimension "default"
applicationIdSuffix ".lite"
def application_id = "my application id"
manifestPlaceholders = [ad_view_application_id:application_id]
}
full{
dimension "default"
applicationIdSuffix ".full"
}
}
variantFilter { variant ->
if(variant.name.startsWith(productFlavors.lite.name)){
def buildType;
def ad_view_banner_footer;
if(variant.buildType.name == buildTypes.release.name){
buildType = buildTypes.release;
ad_view_banner_footer = "my banner id"
}
else if(variant.buildType.name == buildTypes.debug.name){
def banner = "ca-app-pub-3940256099942544/6300978111"
def interstitial = "ca-app-pub-3940256099942544/1033173712"
def interstitial_video = "ca-app-pub-3940256099942544/8691691433"
def rewarded_video = "ca-app-pub-3940256099942544/5224354917"
def native_advanced = "ca-app-pub-3940256099942544/2247696110"
def native_advanced_video = "ca-app-pub-3940256099942544/1044960115"
buildType = buildTypes.debug;
ad_view_banner_footer = banner;
}
else throw new Exception("unknown buildType");
buildType.resValue "string", "ad_view_banner_footer", ad_view_banner_footer
}
}
推荐阅读
- angular - Angular 指令的第二个参数未定义
- go - 如何绕过“通配符路由 id 与路径中现有子项冲突”错误?
- javascript - 如何在对象数组中的数组中添加元素
- powerbi - Power BI 作为 Excel 报表准备的工具?
- fortran - 如何从已经在 SLURM 上使用 srun 启动的 fortran 代码中运行并行程序?
- java - 使用 @OneToMany 或 @ManyToMany 将未映射的类作为 List
在 Spring 数据 jpa 中 - javascript - 从 android 文件中的谷歌驱动器(云存储)附加:err_upload_file_changed 错误
- java - Firebase 规则 - 允许写入实时数据库中的某个路径
- swiftui - 致命错误:@SceneStorage 仅用于 SwiftUI 应用程序生命周期。:文件 SwiftUI,第 0 行
- ios - 离子应用程序在ios中仅显示白色空白屏幕