Android Studio Lint - 设置Lint的API级别

8

这里是问题。我有一个与API 15及以上兼容的应用程序,但由于它非常庞大,已经达到了65000个方法的限制,因此我必须将其设置为MultiDexApplication类的子类。 这会使构建时间变慢一些,因此我必须实现一些优化来加快过程。我在清单文件中添加了以下代码,当构建针对API>=21时,能显著减少构建时间(从其他SO线程中获取):

    productFlavors {
        dev {
            minSdkVersion 21
        }
        prod {
            minSdkVersion 15
        }
    }

一切都运行得很完美,但问题在于在开发期间,Android Studio认为我的minSdkVersion SDK级别是21(正确的),而lint不会显示与API不兼容的部分(15-21)。 我真正想要的是能够使用设置为21的minSdkVersion进行构建(快速构建),但将“lint minSdkVersion”设置为15,以便查看与21以下旧API不兼容的代码部分。 我试图在谷歌上搜索并查看AS lint首选项,但没有找到有用的信息。 感谢任何建议。 我目前的解决方案是将dev flavor中的minSdkVersion切换到21并检查是否有任何错误,但这并不是我想要的。

此内容与编程有关,翻译成中文如下:此功能即将推出,可在Android问题跟踪器上查看:https://code.google.com/p/android/issues/detail?id=200347。 - Gak2
1个回答

7

这个代码片段 回答了您的问题。它展示了如何使用任何开发最小SDK版本来构建项目,同时保持生产最小SDK版本以避免Lint警告。

总结一下,您可以动态计算 minSdkVersion 值:

int minSdk = hasProperty('devMinSdk') ? devMinSdk.toInteger() : 15
apply plugin: 'com.android.application'

android {
    ...
    defaultConfig {
        minSdkVersion minSdk
        ...
    }
}

在这个例子中,我们正在检查是否定义了 devMinSdk 属性,如果为真 - 我们会使用它。否则,默认值为15。
如何将 devMinSdk 的值传递到构建脚本? 有两个选项: 使用命令行:
./gradlew installDebug -PdevMinSdk=21

使用Android Studio首选项:

进入 Preferences(Windows上为Settings) -> Build, Execution, Deployment -> Compiler -> 在 Command-line Options 文本框中输入 -PdevMinSdk=21

Android Studio编译器选项


1
这个在AS中没有内置有点奇怪。非常感谢! - vanomart
1
很难理解为什么这个代码能够正常运行。感觉像是AS的一个bug。 - Marco RS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接