如何将特定变量添加到用于调试和发布的单一风味中

问题描述

一些帮助找到如何执行此操作的方法: 我只想为1种口味创建一些resValue,并且这些resvalue必须根据构建类型而有所不同 (并且出于安全考虑,如果以后添加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",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

        }
    }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...