我的应用程序有两种产品风格:
productFlavors {
europe {
buildConfigField("Boolean", "BEACON_ENABLED", "false")
}
usa {
buildConfigField("Boolean", "BEACON_ENABLED", "true")
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想在任务中获取当前的flavor名称(我在Android Studio中选择的名称)以更改路径:
task copyJar(type: Copy) {
from('build/intermediates/bundles/' + FLAVOR_NAME + '/release/')
}
Run Code Online (Sandbox Code Playgroud)
如何在Gradle中获得FLAVOR_NAME?
谢谢
我想基于当前的buildType在Android Gradle项目中动态添加依赖项.我知道我可以在依赖项中指定buildType:
compile project(path: ':lib1', configuration: 'debug')
Run Code Online (Sandbox Code Playgroud)
但是,如何使用当前的buildType来指定要导入的库的哪个变体,以便调试版本或发布版本自动导入库的调试版本或发行版本?我想要的是这样的(其中currentBuildType是一个包含当前使用的buildType名称的变量):
compile project(path: ':lib1', configuration: currentBuildType)
Run Code Online (Sandbox Code Playgroud)
我要导入的库项目已设置publishNonDefault true
,因此将发布所有buildType.
我有一个工作区,包含几个不同的应用程序和一个公共的库项目,我希望从Eclipse转换为Android Studio,从Ant转换为Gradle.目前,在我们的ant脚本中,我们会在编译之前替换一些类中的文本,具体取决于构建是用于调试目的,QA,Beta /客户验收测试还是用于发布到Google Play.
我想利用Gradle中的构建变体系统并使用值资源(布尔值,字符串等)来防止构建脚本替换我的类中的文本.
由于在我的所有应用产品中复制所有构建类型的不同值将是一个维护问题,我想将它们放在我的公共库中的构建类型中.我尝试了这个,但无论我在我的app模块中使用哪种构建类型,app模块都会引入公共库模块的Release版本.
有没有什么办法可以让app模块的不同构建类型使用库模块的相应构建类型?
这是从Android Studio运行的,其中Build Variants工具窗口将两个模块显示为使用调试变体.图像应该读取应用程序和库的调试.