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.
希望对你有所帮助,纸上得来终觉浅,书到用时方恨少。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
