从build.gradle读取元数据

时间:2015-05-09 13:06:57

标签: android android-studio gradle

根据this我可以在Android Studio项目中创建几个“风味”。但是,看起来我只能创建两棵树然后将被构建。

是否可以在我的build.gradle文件中添加变量,然后我可以从代码中进行访问,这样我就可以对我的应用程序的构建方式进行更精细的控制?

E.g。在我的build.gradle

productFlavors {
    free {
        applicationId "com.example.app.free"
        showAds "yes"
    }
    full {
        applicationId "com.example.app.full"
        showAds "no"
    }
}

然后在我的代码中

String showAds = Gradle.getString("showAds");
if ("yes".equals(showAds)) {
     // show ads
}

1 个答案:

答案 0 :(得分:1)

  

是否可以在我的gradle.build文件中添加变量,然后我可以从代码中访问,这样我就可以对我的应用程序的构建方式进行更精细的控制?

我认为你的意思是你的build.gradle文件。

对于您的具体情况,您可以使用已存在的BuildConfig.FLAVOR freepaid

或者,您可以使用buildConfigField将自己的字段添加到BuildConfig

productFlavors {
    free {
        applicationId "com.example.app.free"
        buildConfigField "boolean", "I_CAN_HAZ_ADS", 'true'
    }
    full {
        applicationId "com.example.app.full"
        buildConfigField "boolean", "I_CAN_HAZ_ADS", 'false'
    }
}

然后,您将在Java代码中引用BuildConfig.I_CAN_HAZ_ADS

请注意,我仅为BuildConfig类型使用了String字段,而不是boolean。 AFAIK,这样的任何简单类型都应该有用。