Androidmanifest 和 build.gradle 中的 minsdk 和 targetsdk 两者?

Ahm*_*med 3 eclipse android android-studio

我刚刚将一个项目从 Exclipse 迁移到了 Android Studio。该build.gradle文件有一个部分,其中包括:

defaultConfig {
    applicationId "com.example.someone.myapplication"
    minSdkVersion 8
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
Run Code Online (Sandbox Code Playgroud)

同样的事情在uses-sdk的元素AndroidManifest.xml

当两种设置同时存在时,哪些设置受到尊重?另外,我应该将它们从AndroidManifest.xml? 我的项目至少必须支持 Api-8。如果uses-sdk从清单文件中删除该部分,它对旧平台有什么影响吗?

小智 5

您只需要在build.gradle文件中定义 min SDK 和 target SDK 。Gradle 构建系统会在您构建时自动在清单中定义这些值。

如果您在build.gradleAndroidManifest.xml文件中都定义了它们,则文件中的设置build.gradle将覆盖清单中的设置。

最佳做法是完全删除<uses-sdk>清单中的标签,仅使用该build.gradle文件指定最小 SDK 和目标 SDK。这不会对旧设备产生任何影响;它将运行完全相同。

defaultConfig {
    minSdkVersion 8
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
Run Code Online (Sandbox Code Playgroud)

同样的事情适用于versionCodeversionName设置。