Android 如何将特定变量添加到一个不同的风格中,以用于调试和发布

Android 如何将特定变量添加到一个不同的风格中,以用于调试和发布,android,gradle,android-productflavors,android-build-type,Android,Gradle,Android Productflavors,Android Build Type,以下内容有助于了解如何做到这一点: 我只想为1种风格创建一些resValue,这些resValue必须根据构建类型而有所不同 (为了安全起见,如果我后来添加了buildType并忘记在我的风格中管理它,则会生成一个错误) 谢谢,所以我自己回答。使用我在这里和那里找到的东西: flavorDimensions "default" productFlavors{ lite{ dimension "default"

以下内容有助于了解如何做到这一点: 我只想为1种风格创建一些resValue,这些resValue必须根据构建类型而有所不同 (为了安全起见,如果我后来添加了buildType并忘记在我的风格中管理它,则会生成一个错误)


谢谢,所以我自己回答。使用我在这里和那里找到的东西:

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

        }
    }
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

        }
    }