根据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
}
答案 0 :(得分:1)
是否可以在我的gradle.build文件中添加变量,然后我可以从代码中访问,这样我就可以对我的应用程序的构建方式进行更精细的控制?
我认为你的意思是你的build.gradle
文件。
对于您的具体情况,您可以使用已存在的BuildConfig.FLAVOR
free
或paid
。
或者,您可以使用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,这样的任何简单类型都应该有用。