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事务回滚

    JAVA事务回滚当一个租赁系统在租房服务时我们会判断用户的账户金额是否够支付本次的房费 如果钱够则扣款 在订单表插入一条本次业务相关的数据 这时候如果在订单表插入出现了异常 但是钱已经扣款成功了 这样的情况就可以加入事务回滚 事务回滚将本次的操作都使用同一个 Connection 进行操作 于是加入了 ThreadLocal 存放 Connection 在获取 Connection 时先看一下当前 ThreadLocal 是否存放有 Connection 如果有则直接从里面获取 没有的话就创

    2026年3月26日
    3
  • 【浅谈】日文的文本等出现乱码的情况以及解决办法「建议收藏」

    【浅谈】日文的文本等出现乱码的情况以及解决办法「建议收藏」参考链接Word里日文文档乱码问题ansi编码字符集和编码的区别.GB2312是一个字符集,那ANSI是编码,但是他俩是什么个意思?日文的文本出现乱码前言遇到了一个txt日文文本,出现大面积乱码。而且不懂日文,乱码的话,连翻译软件也无法使用。【上图为测试文本】以下的解释与解决办法为自己的想法等,并不一定准确。目录1.简单的解释2.如何解决3.附件一、简单的…

    2022年6月13日
    81
  • OpenClaw光速国产化,大厂出的“龙虾”到底哪个最好用?

    OpenClaw光速国产化,大厂出的“龙虾”到底哪个最好用?

    2026年3月13日
    2
  • mysql 拖库_【渗透测试】温故知新之拖库七种方法

    mysql 拖库_【渗透测试】温故知新之拖库七种方法参考 Aspcms 框架拿 webshell 该管理页面存在数据库备份模块 通过菜刀查到了数据库模块备份的文件目录 由于不知道数据库文件的大小 最通用稳定的方法是 将数据库复制一份复制到上一层目录下 重命名为 rar 文件 将下载的 rar 文件重命名为 mdb 后缀 然后打开辅臣数据库软件 点击打开数据库导入 mdb 文件 可看到正常打开后读取到数据库所有信息 方法 2 mysqldump 拖库该方法在 kali lin

    2026年3月17日
    2
  • MySQL中的存储过程(详细篇)

    MySQL中的存储过程(详细篇)概述由 MySQL5 0 版本开始支持存储过程 如果在实现用户的某些需求时 需要编写一组复杂的 SQL 语句才能实现的时候 那么我们就可以将这组复杂的 SQL 语句集提前编写在数据库中 由 JDBC 调用来执行这组 SQL 语句 把编写在数据库中的 SQL 语句集称为存储过程 存储过程 PROCEDURE 是事先经过编译并存储在数据库中的一段 SQL 语句的集合 调用存储过程可以简化应用开发人员的很多工作 减少数据在数据库和应用服务器之间的传输 对于提高数据处理的效率是很有好处的 就是数据库 SQL 语言层面的代码封装与

    2026年3月18日
    3
  • AI大模型学习笔记(一)

    AI大模型学习笔记(一)

    2026年3月14日
    3

发表回复

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

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