Error:All flavors must now belong to a named flavor dimension. The flavor 'flavor_name' is ...

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'
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章