我有2种产品口味:
productFlavors {
first{}
second{}
}
并且我有一个Http
类,其值恒定,如屏幕上所示:
我的问题是:
如果我设置了构建first
,我希望Http
的{{1}}类
但是如果我设置了构建CODE = 2000
,我想使用second
的{{1}}类
我看过这样的项目,看起来像:repo(first)和更改后 版本库repo(second)和类http因当前版本而有所不同,但无法复制它:/
答案 0 :(得分:3)
如果您的类相同,但唯一的不同是常量,那么您无需复制代码,只需要做的是创建可通过BuildConfig
类访问的gradle常量:>
productFlavors {
flavor1 {
buildConfigField 'int', 'CODE', '1000'
}
flavor2 {
buildConfigField 'int', 'CODE', '2000'
}
}
然后您将使用
BuildConfig.CODE
在您的HTTP调用中,根据类型,可以容纳1000或2000。
答案 1 :(得分:0)
创建Http
类的两个副本,一个在src/first/com.androidapp.testproject/repo
中,另一个在src/second/com.androidapp.testproject/repo
中,然后从src/main/...
中删除副本。
src/first/...
中您班级的第一个版本将根据您的口味first
构建,而src/second/...
中班级中的第一个版本将根据您的口味second
构建。当然,您必须在相应的类副本中调整CODE
的值。
有关更多信息,请参见以下答案https://stackoverflow.com/a/16746755/3286819