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

android studio 3.0,更新html

classpath ‘com.android.tools.build:gradle:3.0.0’之后,出现报错android

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_pluginapp

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 能够生成多维度,好比下面的代码gradle

// 两个维度
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上的回答更简单的使用以下:ui

android {

    defaultConfig {

        flavorDimensions 'default'
    }

或是:google

android {

    defaultConfig {

        flavorDimensions 'versionCode'
    }

版权声明:本文为博主在学习工做中所遇到问题解决的点滴记录,不能说全是原创,若有错误之处,欢迎批评指正 https://blog.csdn.net/sinat_35670989/article/details/78393709spa

相关文章
相关标签/搜索