有没有办法在 Android Studio (build.gradle) 中通过多种风格编译依赖项?
我有 2 个风味组,每组有 2 个变体。在 4 种可能的组合中,我希望仅当我既是最新版本又是免费版本时才能依赖库。 latestCompile 或 freeCompile 可以工作,但latestFreeCompile 不行。这是我的 build.gradle 的相关部分:
android {
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
versionCode 15
versionName "1.9." + versionCode
}
flavorGroups 'sdk', 'cost'
productFlavors {
latest {
flavorGroup 'sdk'
minSdkVersion 8
}
sdk7 {
flavorGroup 'sdk'
minSdkVersion 7
versionName android.defaultConfig.versionName + ".sdk7"
}
free {
flavorGroup 'cost'
}
pro {
flavorGroup 'cost'
}
}
}
dependencies {
// this works:
freeCompile files('libs/StartAppInApp-2.2.1.jar')
// and I would like something like this:
latestFreeCompile 'com.google.android.gms:play-services:4.1.32' // minSdkVersion:8
}
如果我会使用:
latestCompile 'com.google.android.gms:play-services:4.1.32'
那么它也会包含在latestPro中(不需要)
如果我使用:
freeCompile 'com.google.android.gms:play-services:4.1.32'
那么它也会包含在 sdk7Free 中(尽管它需要 SDK 8)
正如现在官方所描述的Android 开发者网站,如果您想声明特定组合的依赖关系产品风味和构建类型您需要首先声明该配置。
例如对于free
风味和debug
type:
configurations {
freeDebugImplementation {}
}
dependencies {
freeDebugImplementation 'com.google.firebase:firebase-ads:9.8.0'
}
进阶:多种风味维度
请注意,如果您的应用程序具有多个风味维度,则必须创建与完整构建变体(所有风味,然后是构建类型)相对应的配置,如下所示:
flavorDimensions "money", "image"
productFlavors {
free { dimension "money" }
paid { dimension "money" }
picasso { dimension "image" }
glide { dimension "image" }
}
configurations {
freePicassoDebugImplementation {}
freeGlideDebugImplementation {}
}
dependencies {
freePicassoDebugImplementation 'com.google.firebase:firebase-ads:9.8.0'
freeGlideDebugImplementation 'com.google.firebase:firebase-ads:9.8.0'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)