使用getBuildConfigFields()。build.gradle中的getAt()返回null

时间:2015-08-04 19:08:31

标签: android build.gradle

在我的android build.gradle文件中,我想使用在每个flavor中为我的包名后缀设置的build config字段值。

假设我的包是“com.my.app”,我的配置字段的名称是“myConfigFieldName”。

我尝试做:

applicationIdSuffix "." + getBuildConfigFields().getAt("myConfigFieldName")

在运行构建之后,我的包是“com.my.app.null”,当我期待像“com.my.app.flavorA”这样的东西时

有没有办法实现我想要做的事情?

1 个答案:

答案 0 :(得分:0)

好的,这是一种将风味名称附加到app包上的方法。 我还检查发布类型是否已发布,因此我可以在开发期间切换各种风格,而无需安装越来越多的应用程序

buildTypes {

        release {

            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        debug {
            applicationIdSuffix ".debug"
        }

        //append flavor name to the package name in release builds
        applicationVariants.all { variant ->
            if(variant.buildType.name.equals('release')) {
                variant.productFlavors.each() { flavor ->
                    variant.mergedFlavor.applicationId = variant.mergedFlavor.applicationId + '.' + flavor.name
                }
            }
        }
    }