Android Studio minSdkVersion、targetSdkVersion和minSdk、targetSdk有什么区别?

Android Studio What is the difference between minSdkVersion, targetSdkVersion and minSdk, targetSdk?

我将Target SDK Version 从30 改为31,Min SDK Version 从19 改为22。在build.gradle 中,minSdkVersion、targetSdkVersion 和targetSdk 除了minSdk 外都相应变化。还是19岁

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.example.studentsacademicmanagementappsama"
        minSdk 19
        targetSdk 31
        versionCode 1
        versionName "1.0"
        vectorDrawables.useSupportLibrary = true

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        targetSdkVersion 31
        minSdkVersion 22
    }
} 

据我所知1,Gradle 插件不会理解(并且会忽略)这些属性:

  minSdk 19
  targetSdk 31

据我所知,他们从未被认出。

问:他们为什么在那里?
A: 我的猜测是写原始 Gradle 文件的人犯了一个错误。

我的建议是删除它们,看看它是否破坏了任何东西。


1 - ... 通过阅读插件文档、查看源代码和谷歌搜索。我可能错过了什么。

build.gradle中没有名为minSdk、targetSdk、compileSdk的东西。 你应该像这样配置你的应用程序兼容性:

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.app.test"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0.0"
    }
}