android studio 3.0,更新
classpath ‘com.android.tools.build:gradle:3.0.0’以後,出現報錯
Error:All flavors must now belong to a named flavor dimension.
The flavor 'flavor_name' is not assigned to a flavor dimension.
報錯的原因:查看給出的鏈接地址:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#apply_plugin
The plugin now requires that all flavors belong to a named flavor dimension—even if you intend to use only a single dimension. Otherwise, you will get the following build error:
意思大致說,這個3.0的插件要求flavor dimension必須要有,哪怕只有一個維度也要聲明, flavorDimensions 是在android{}中的字段:可以理解成維度,比如下面只聲明瞭一個渠道的維度,
flavorDimensions "channel"
//渠道
productFlavors {
qh360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"]
dimension "channel"
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
dimension "channel"
}
}
關於flavorDimensions 可以生成多維度,比如下面的代碼
// 兩個維度
flavorDimensions "isFree", "channel"
productFlavors {
free {
// 免費和付費用isFree做標識,小米和htc爲發佈到的平臺用channel做標識,因而最後生成4
//種flavor,加上buildtype就是4*2=8種
dimension "isFree"
...
}
paid {
dimension "isFree"
...
}
xiaomi{
dimension "channel"
...
}
htc{
dimension "channel"
...
}
}
其實就是在3.0插件以後,google要求必須添加這個flavorDimensions 這個字段哪怕是隻有一個維度也要寫上纔不報錯,
然後看到stackoverflow上的回答更簡單的使用如下:
android {
defaultConfig {
flavorDimensions 'default'
}
或是:
android {
defaultConfig {
flavorDimensions 'versionCode'
}