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)
上一篇 2021年9月30日 下午5:00
下一篇 2021年9月30日 下午5:00


相关推荐

  • java面试宝典2019

    java面试宝典2019java面试宝典20191、meta标签的作用是什么2、ReenTrantLock可重入锁(和synchronized的区别)总结3、Spring中的自动装配有哪些限制?4、什么是可变参数?5、什么是领域模型(domainmodel)?贫血模型(anaemicdomainmodel)和充血模型(richdomainmodel)有什么区别?6、说说http,http…

    2022年7月14日
    29
  • jxbrowser 6.18 以及 6.16 激活成功教程 整合

    jxbrowser 6.18 以及 6.16 激活成功教程 整合激活成功教程方法来源 NoteShare jxbrowser6 x 激活成功教程 Java 感谢网友激活成功教程 6 18 方法激活成功教程原理 f siga d siga sigb d d e sha d 0

    2026年3月20日
    2
  • C++:浅谈右值引用

    C++:浅谈右值引用1 什么是左值和右值 nbsp nbsp nbsp nbsp nbsp nbsp nbsp C C 语言中可以放在赋值符号左边的变量 即具有对应的可以由用户访问的存储单元 并且能够由用户去改变其值的量 左值表示存储在计算机内存的对象 而不是常量或计算的结果 或者说左值是代表一个内存地址值 并且通过这个内存地址 就可以对内存进行读并且写 主要是能写 操作 这也就是为什么左值可以被赋

    2026年3月20日
    2
  • opensearch查询

    opensearch查询classOpensea static access key eOd5HGId0yGh static secret YaNUrwAGbYMI static app name publish 应用结构名 static host htt

    2026年3月19日
    2
  • ARM汇编循环语句框架、数组求和

    ARM汇编循环语句框架、数组求和ARM 汇编数组求和 ARM 汇编语句循环框架

    2026年3月16日
    2
  • 博客群发软件–用 Windows Live Writer完美发布新浪、网易、blogcn、blogbus、cnbl

    博客群发软件–用 Windows Live Writer完美发布新浪、网易、blogcn、blogbus、cnbl前言:当今网络博客、微薄铺天盖地,相信即使一个普通的用户也都注册了很多家品牌的博客或者微薄等,那么困扰着大家一个很大的问题,同时在多家博客发布同样的内容,如果说只是简单的文字还好说,复制粘贴就完事了,但是如果里面包含着图片,那么使用复制粘贴是不可以的,因为诸多博客品牌之间图片是不能共享使用的。研究了一天,终于找到较为完美博客群发软件,那就是微软出品的…

    2022年7月13日
    34

发表回复

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

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