为了简单起见,我的应用有两种口味,称为flavora
和flavorb
。产品口味和源层次
productFlavors {
flavora {
resValue "string", 'app_name', "App Name Flavor A"
applicationIdSuffix ".flavora"
}
flavorb {
resValue "string", 'app_name', "App Name Flavor B"
applicationIdSuffix ".flavorb"
}
}
两个我都想要的味道使用所有相同的布局,所有相同的Java代码,所有相同的资源,等等,除非我想flavora
和flavorb
使用不同的实现布局文件flavor_dependent_layout.xml
和Java FlavorDependentJavaClass
类。
这是正确的方式做到这一点:
sourceSets {
main {
res.srcDirs = ['src/main/res']
java.srcDirs = ['src/main/java']
}
flavora {
res.srcDirs = ['src/flavora/res', 'src/main/res']
java.srcDirs = ['src/flavora/java', 'src/main/java']
}
flavorb {
res.srcDirs = ['src/flavorb/res', 'src/main/res']
java.srcDirs = ['src/flavorb/java', 'src/main/java']
}
}
然后我刚刚创建必要的文件夹放置相应的文件,它会所有的工作从那里自然?它是如何知道我已经包含了这两种口味的课程,以防我尝试执行一种方法,例如它只存在一种口味?
(?还有,我必须明确提到资产文件夹,因为我有`/ src目录/主/资产,以及)