【发布时间】:2016-06-08 03:26:00
【问题描述】:
我们将放弃对 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 文件中?
【问题讨论】:
-
清单上有什么?
-
我没有在清单中放置最低或目标 SDK 版本。
-
尝试查找您的项目中是否有一些用“grep”定义 9 的东西...
-
@Wirling 仍然,再次检查您的主模块中的
build.gradle(通常命名为app)并再次检查同一模块中的清单文件。 -
wat 是你编译的 sdk 人
标签: android android-gradle-plugin android-version android-api-levels android-min-sdk