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

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

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

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.
希望对你有所帮助,纸上得来终觉浅,书到用时方恨少。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115046.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • e.Row.Attributes.Add「建议收藏」

    e.Row.Attributes.Add「建议收藏」其实看到属性这个单词,还有点发憷呢,C#里面有个关键词是Attributes,搞了半天貌似没有弄清楚e.Row.Attributes.Add()函数的介绍,包括参数,什么是Attributes就是往行里面添加属性相当于html里面的一个表里的一个行的属性,你看看那个属性有什么,这个就可以添加什么属性//这个就是在前台添加一个Button的按钮,然后给他添加事件<asp…

    2022年9月26日
  • PHPStorm2017去掉函数参数提示

    PHPStorm2017去掉函数参数提示

    2021年9月18日
  • js取数组截取

    js取数组截取splice()会删除选定的数组,slice()只会进行选定,pop选定最后一个元素删除并返回最后一个元素的值,length函数判断数组的长度,使用slice选取单个值的时候记得返回的是一个数组类型。constarr=[1,2,7,2,6,0,3,1,5,7,8,9,45,12,34,0,56,12,2]//slice()方法constsliceArr…

    2022年5月2日
  • RS485接口定义

    RS485接口定义

    1.英式标识为 TDA(-) 、TDB(+) 、RDA(-) 、RDB(+) 、GND 
    2.美式标识为 Y 、Z 、 A 、 B 、 GND  
    3.中式标识为 TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GND  
       rs485两线一般定义为:  
                 “A, B”或”Date+,Date-”  
       即常说的:”485+,485-”  
       rs485四线一般定

    2022年5月27日
  • Linux WIFI优先连接5G频段「建议收藏」

    Linux WIFI优先连接5G频段「建议收藏」最近遇到一个项目,要求树莓派无线优先连接5G,目前测试了一个方法,先记录下来,测试下来是有用的。现场无线网络知识2.4G和5G双频,SSID和密码都是相同的,树莓派在这个环境中,优先连接2.4G网络。由于2.4G网络干扰问题,网络通讯不稳定,因此需要树莓派优先连接到5G网络。有查到通过修改wpa_supplicant.conf文件中,定义frep_list的频点值,可以修改单独连接到5WIFI.后来经过测试,将5G频段排序到2.4G频段之前,无线会优先连接5G网络,如果5G网络不可用,也可以连接到

    2022年10月20日
  • inception v3网络_Netmarble

    inception v3网络_Netmarble本文叙述了CNN历史以来的发展模型,介绍了发展流程以及发展路线,并对比了各种Inception模型区别,详细介绍了Inceptionv3模型,读者可以轻松了解到Inception模型的发展情况。

    2022年8月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号