我们正在放弃对 Android 2.3(API 级别 9)设备的支持,因为我们的大多数用户在他们的手机上都安装了更新的 Android 版本。我已将最低 SDK 版本更新为 api 级别 14。
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
}
但是,我仍然可以手动(而不是通过商店)在 Android 2.3 设备上安装该应用程序。这是预期的行为还是我做错了什么?我在其他地方找不到答案。
另一个奇怪的问题是 Lint 没有检测到正确的 api 级别。
listView.setFastScrollAlwaysVisible(true);
这会导致警告:调用需要 api 级别 11(当前最小值为 9)。但是我目前的最小值现在是 14。所以这向我表明我做错了什么。我尝试清理和重建项目,重新启动 Android Studio。这一切都没有奏效。
谁能帮我吗?
编辑
根据 Sufians 的评论,我开始摆弄我的 gradle 文件,并找到了以下解决方案。然而,一些问题仍然存在。我的项目结构如下所示:
- android.gradle(包含 SDK 版本的顶级构建文件)
- 主模块(包含其他模块的基本代码)
- build.gradle(应用自:'../android.gradle')
- 子模块 A(模块特定更改)
- build.gradle(依赖于主模块)
- 子模块 B(模块特定更改)
- build.gradle(依赖于主模块)
android.gradle
我有一个包含 SDK 版本的顶级构建文件。然后我的模块包含构建文件apply from: '../android.gradle'
。如果我将 minSdkVersion 直接放在 de 主模块中,警告就会消失。应该是这样吗?还是我需要为每个子模块设置一个 minSdkVersion?还是有其他方法可以使 SDK 版本保留在android.gradle
文件中?