Flavor 'xxxx' has unknown dimension 'app'.和Unable to load class 'org.gradle.api.internal.compo

版权声明:本文为博主原创文章,欢迎转载。书到用时方恨少,纸上得来终觉浅。 https://blog.csdn.net/qq_33721320/article/details/82217241

Flavor ‘xxxx’ has unknown dimension ‘app’.

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上的回答更简单的使用如下:

扫描二维码关注公众号,回复: 4103686 查看本文章

android {

defaultConfig {

    flavorDimensions 'default'
}

或是:

android {

defaultConfig {

    flavorDimensions 'versionCode'
}

针对Unable to load class ‘org.gradle.api.internal.compo

classpath ‘com.novoda:bintray-release:0.4.0’改成最新(当前是0.8),
然后还有就是依赖其他项目版本的问题,统一管理。
//统一管理
ext {
var = [
minSdkVersion : 19,
targetSdkVersion : 27,

        compileSdkVersion   : 27,
        buildToolsVersion   : "27.0.2",

        versionName         : "2.9.2",
        versionCode         : 292,

        supportVersion      : "27.1.1",

        okhttploggingVersion: '3.8.1',
        okhttpVersion       : '3.8.1',
        retrofitVersion     : '2.4.0',

        rxjavaVersion       : '2.1.12',
        rxandroidVersion    : '2.0.2',

]

}
这种多渠道,以及依赖项目。Android studio建议用正式版,别急着尝鲜我的版本是3.14.
希望对你有所帮助,纸上得来终觉浅,书到用时方恨少。

猜你喜欢

转载自blog.csdn.net/qq_33721320/article/details/82217241
今日推荐