爲了簡單起見,我的應用有兩種口味,稱爲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目錄/主/資產,以及)