如何仅在调试模式下使用特定的minSdkVersion? 我想将minSdkVersion 21用于调试模式,但minSdkVersion 15用于发布。我不想用这种口味,因为会给你带来麻烦。
我认为可能是这样(但不起作用):
defaultConfig {
applicationId "blacktoad.com.flapprototipo"
minSdkVersion 15
debug{
minSdkVersion 21
}
targetSdkVersion 23
versionCode 42
versionName "1.72"
multiDexEnabled true
}
答案 0 :(得分:2)
我不想为此使用口味,因为会给你带来麻烦。
我认为你可以在没有productFlavors
的情况下做到这一点。我将这个答案留给了那些使用productFlavors
没有问题的人。
https://developer.android.com/studio/build/multidex.html#dev-build
基本上您需要做的就是使用不同的productFlavors
声明minSdkVersion
:
productFlavors {
dev {
// Enable pre-dexing to produce an APK that can be tested on
// Android 5.0+ without the time-consuming DEX build processes.
minSdkVersion 21
}
prod {
// The actual minSdkVersion for the production version.
minSdkVersion 14
}
}
答案 1 :(得分:2)
我花了将近一天的时间来创建这个脚本。请注意这个纪念品,但只能将此作为最后的手段。
android.applicationVariants.all { variant ->
//Making specific variant disablements for faster build
if (variant.buildType.name.contains("debug")) {
println "Making min version to 21 and disabling multidex"
variant.mergedFlavor.setMultiDexEnabled false
def versionMin = new com.android.builder.core.DefaultApiVersion(21)
variant.mergedFlavor.setMinSdkVersion versionMin
}
}
答案 2 :(得分:0)
有一种更好的方法可以做到,而无需产品风味或加入构建流程。 示例:
buildTypes {
debug {
defaultConfig.minSdkVersion 19
defaultConfig.vectorDrawables.useSupportLibrary = true
defaultConfig.multiDexEnabled = true
...
答案 3 :(得分:0)
我知道这是一个老问题,但是有一个非常简单的解决方案,即使没有设置单独的口味。
只需替换一行即可;
minSdkVersion 21
使用
minSdkVersion gradle.startParameter.taskNames.toString().contains("Release")?16:21
和中提琴,它将起作用。