猿问

同一类为两种不同的产品风味

我有 2 种产品口味:


productFlavors {

    first{}

    second{}

}

我有一个Http像在屏幕上一样具有常量值的类:

我的问题是:

如果我设置了 build first,我想Http上课,CODE = 2000
但如果我设置了 buildsecond我想Http上课CODE = 1000

我见过这样一个项目,它看起来像: repo(first) 和更改后构建 repo(second) 和类 http 因当前构建而异,但无法复制它:/


撒科打诨
浏览 81回答 2
2回答

慕哥9229398

如果你的类是相同的,但唯一的区别是常量,那么你不需要复制代码,你需要做的就是创建你通过BuildConfig类访问的 gradle 常量:productFlavors {    flavor1 {        buildConfigField 'int', 'CODE', '1000'    }    flavor2 {        buildConfigField 'int', 'CODE', '2000'    }}然后你会使用BuildConfig.CODE在您的 HTTP 调用中,这将根据风格保存 1000 或 2000。

哈士奇WWW

Http创建您的班级的两个副本,一个在 中src/first/com.androidapp.testproject/repo,另一个在 中src/second/com.androidapp.testproject/repo,然后从 中删除副本src/main/...。您的类 in 的第一个版本src/first/...将根据您的风格构建first,而in 的第一个版本将根据您的风格src/second/...构建second。当然,您必须CODE在类的适当副本中调整值。
随时随地看视频慕课网APP

相关分类

Java
我要回答