解决Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com

这个问题是Android studio升级到3.0之后,运行的时候会提示gradle要升级到3.5版本才能编译。于是我把我的gradle升级到了

gradle-4.1-milestone-1 版本,是2017年7月份最新版本了。

于是我把主程序的build.gradle中的gradle版本改成了这个,具体指定哪个版本我也不知道,于是就写了个3.0+

 dependencies {
 classpath 'com.android.tools.build:gradle:3.0+'
}

然后再次编译,又发现了毒。

提示:Error:All flavors must now belong to a named flavor dimension.Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

这个一个错误,意思是:所有的flavors都必须属于同一个风格。

=。=懵逼

去翻墙看了它提供的地址才知道:

Plugin 3.0.0 includes a new dependency mechanism that automatically matches variants when consuming a library. This means an app's debug variant automatically consumes a library's debug variant, and so on. It also works when using flavors—an app's redDebug variant will consume a library's redDebug variant. To make this work, 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:
[cpp] view plain copy
Error:All flavors must now belong to a named flavor dimension. 
The flavor 'flavor_name' is not assigned to a flavor dimension. 
 To resolve this error, assign each flavor to a named dimension, as shown in the sample below. Because dependency matching is now taken care of by the plugin, you should name your flavor dimensions carefully. For example, if all your app and library modules use the foo dimension, you'll have less control over which flavors are matched by the plugin.

// Specifies a flavor dimension.
flavorDimensions "color"
productFlavors {
  red {
  // Assigns this product flavor to the 'color' flavor dimension.
  // This step is optional if you are using only one dimension.
  dimension "color"
  ...
 }
 blue {
  dimension "color"
  ...
 }
} 

大致是说,Plugin 3.0.0之后有一种自动匹配消耗库的机制,便于debug variant 自动消耗一个库,然后就是必须要所有的flavor 都属于同一个维度。

为了避免flavor 不同产生误差的问题,应该在所有的库模块都使用同一个foo尺寸。

= 。=还是懵逼。说一堆依然不是很理解。

但是我们从中已经知道解决方案了:

在主app的build.gradle里面的

 defaultConfig {
 targetSdkVersion:***
minSdkVersion :***
versionCode:***
 versionName :***
//版本名后面添加一句话,意思就是flavor dimension 它的维度就是该版本号,这样维度就是都是统一的了
flavorDimensions "versionCode"
}

总结

以上所述是小编给大家介绍的解决Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 解决Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com

    这个问题是Android studio升级到3.0之后,运行的时候会提示gradle要升级到3.5版本才能编译.于是我把我的gradle升级到了 gradle-4.1-milestone-1 版本,是2017年7月份最新版本了. 于是我把主程序的build.gradle中的gradle版本改成了这个,具体指定哪个版本我也不知道,于是就写了个3.0+ dependencies { classpath 'com.android.tools.build:gradle:3.0+' } 然后再次编译,又发

  • ubuntu18.0.4安装mysql并解决ERROR 1698 (28000): Access denied for user ''root''@''localhost''

    前言 最近学习linux,然后将win换成了ubuntu.之前安装的mysql也不能用了,现在将在ubuntu18.0.4上安装mysql并将碰到的问题记录如下: 下载并安装mysql 执行语句sudo apt-get install mysql-server 因为我这里已经安装好了的,所以会出现这样的.可以通过mysql --version查看安装版本. 登录mysql 执行语句 mysql -u root -p 其-u是user -p是端口.登录时出现ERROR 1698 (28000):

  • 解决已经安装requests,却依然提示No module named requests问题

    Python版本3.5.1, pip install requests 之后依然提示 Python ImportError: No module named 'requests' 经过文件搜索和提示,发现是因为安装目录不正确. 一定要切到Python的主目录下安装requests. 如果提示已经安装,那原因是安装的路径不正确,需要先卸载.找到现在的安装目录(会提示),在CMD窗口切过去,执行: pip uninstall requests C:\Users\Administrator>pip u

  • 解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法

    由于本博文的浏览量已经破万了,看了一下是自己很久以前写的了,刚开始写博客,感觉废话一大堆.为了不浪费大家的时间,这里就直接说怎么解决问题的吧. 其实就是我自己装了一个python-pip,至于是自己下的安装包安装的还是python2自带的我也忘了,然后后来应该是又装了一个python3,结果用pip install tensorflow 就出现了这个问题,总之就是因为执行这个命令的时候,pip没将tensorflow装在python3的目录里,然后用的时候调用的python3,所以导致找不到.所

  • Android Studio升级到3.0后遇到的坑

    这几天谷歌推出了as3.0的正式版,相信大家都进行更新了,然后对3.0的新特性也有过一些了解,最后磨刀霍霍开始宰杀,然鹅却一不小心就开始了排坑之路. 第一坑.必须升级gradle到4.0以上 相信这个大坑,一般使用as的人都会解决了,所以就不多说 第二坑.buildToolsVersion升级到26.0.0 其实这个不算坑,一般buildToolsVersion都会升级到最新的版本,直接更新就是了 第三坑.Error:Resource shrinker cannot be used for li

  • 浅谈Android Studio 3.0 的一些小变化

    前言 一大早还在北京拥挤的地铁里,我的CTO闫哥在微信里给我发了一条信息:Android Studio 3.0发布了. 为什么会这么关注Android Studio 3.0 的版本发布呢?主要是因为公司即将开发的新app准备使用Kotlin语言,而Android Studio 3.0 已经把Kotlin的语言支持内置进去了,这样就省去了很多的麻烦,如果你还没接触过Kotlin语言,可以去百度一下 他们的官网,如果你现在使用的Java语言,那么你真是太幸运了,因为Kotlin对于你来说,将会非常简

  • Android Studio3.0.1填坑笔记

    从前听大神同事强老师说IntelliJ IDEA 功能强大,是Jet Brains 公司开发商业IDE(集成开发环境),同时支持Java, Scala 和Groovy.商业IDE即IntelliJ 是一款收费的IDE,当然了其实也有免费的社区版本,但是很多功能都被阉割了.IntelliJ 除了支持Android项目开发,还可以搭建java web 开发环境,功能比AS更强大. 阿拉最近重装了电脑,想着干脆也装个IntelliJ 吧,但是另一个同事说Intellij与AS会冲突.一开始我觉得是他太

  • 更新Android Studio 3.0碰到的问题小结

    更新完后试下运行正在维护的旧项目,出现各种错误,因为后来发现问题不在这,所以没记完整,大概如下: A larger heap for the Gradle daemon is recommended for running jack. It currently has 512 MB. For faster builds, increase the maximum heap size for the Gradle daemon to at least 1536 MB. To do this set

  • gradle tool升级到3.0注意事项小结

    Gradle版本升级 其实当AS升级到3.0之后,Gradle Plugin和Gradle不升级也是可以继续使用的,但很多新的特性如:Java8支持.新的依赖匹配机制.AAPT2等新功能都无法正常使用. Gradle Plugin升级到3.0.0及以上,修改project/build.gradle文件: 修改global.gradle(自定义lib管理的gradle) tools = [ gradleTools : 'com.android.tools.build:gradle:3.0.1' ]

  • 老项目迁移AndroidStudio3.0遇到的坑

    AndroidStudio3.0刚刚发布两天(版本控的我~),便迫不及待的升级了,升级前也明白这次的版本跨度较大,老项目可能存在很多的问题,没成想还是从中午折腾到了晚上十点.不过结果还不错,成功的跑起来了项目. 列出踩过的坑,希望后面要升级的小伙伴遇到类似的问题可以做个参考; 1.升级安装 升级方法: 1. 直接用自带的更新工具 操作步骤: >菜单栏>Help>Check for Updates..(前提网络要绝对的畅通,你懂的) 2. 手动的下载新的版本 下载地址https://dev

随机推荐