我有2种产品口味:
productFlavors {
first{}
second{}
}
我在屏幕上有一个具有常数值的类Http
:
我的问题是:
如果我已经设置了构建first
,我希望Http
类与CODE = 2000
但如果我已经设置构建second
我想Http
类与CODE = 1000
我看过这样一个项目看起来像:repo(第一个)和更改后构建repo(第二个)和类http根据当前构建而不同,但不能复制它:/
创建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的更多信息,请参阅以下答案
如果你的类是相同的,但唯一的区别是常量,那么你不需要复制代码,你需要做的就是创建你通过BuildConfig
类访问的gradle常量:
productFlavors {
flavor1 {
buildConfigField 'int', 'CODE', '1000'
}
flavor2 {
buildConfigField 'int', 'CODE', '2000'
}
}
然后你会用
BuildConfig.CODE
在您的HTTP调用中,根据风格,将保持1000或2000。