这就是事情.我有一个与API 15及更高版本兼容的应用程序,但由于它非常大而且我已经达到65k方法限制,我不得不将其作为MultiDexApplication类的后代.
这会稍微减慢构建时间,因此我必须实施一些优化来加速该过程.我在清单中有以下代码,这可以显着缩短构建API> = 21时的构建时间(取自其他一些SO线程):
productFlavors {
dev {
minSdkVersion 21
}
prod {
minSdkVersion 15
}
}
一切都很完美,但问题是在开发过程中,Android工作室认为我的minSdkVersion SDK级别是21(正确),并且lint没有显示我不兼容的API(15-21).
我真正想要的是能够将minSdkVersion设置为21(快速构建),但将“lint minSdkVersion”设置为15,所以我看到代码的部分与旧的API不兼容,而不是21.
我试图谷歌它,也调查AS lint首选项,但我没有找到任何有用的东西.谢谢你的任何建议.我目前的解决方案是将dev风格的minSdkVersion切换为21并检查是否有任何错误,但这不是我想要的.
最佳答案:
This gist回答你的问题.它显示了如何使用任何开发最小SDK值构建项目,同时为Lint警告维护生产最小SDK值.
要总结帖子,您可以动态计算minSdkVersion值:
int minSdk = hasProperty('devMinSdk') ? devMinSdk.toInteger() : 15
apply plugin: 'com.android.application'
android {
...
defaultConfig {
minSdkVersion minSdk
...
}
}
在这个例子中,我们检查是否定义了devMinSdk属性,如果为true,我们正在使用它.否则,我们默认为15.
我们如何通过devMinSdk值来构建脚本?两种选择:
使用命令行:
./gradlew installDebug -PdevMinSdk=21
使用Android Studio偏好设置:
转到首选项(Windows上的设置) – >构建,执行,部署 – >编译器 – >在命令行选项文本框中输入-PdevMinSdk = 21.