Android 上的 fluttercompileSdkVersion 和 targetSdkVersion

Kod*_*ata 25 android flutter

我想知道,如果我希望我的应用程序支持 api 级别为 9.0(Pie) 的新 Android 手机,我应该为compileSdkVersiontargetSdkVersionon设置什么值build.gradle。有人知道这件事吗?

mbr*_*tto 43

compileSdkVersion :实际用于构建应用程序的版本

通常建议使用 Flutter 常量,以便compileSdkVersion始终使用 Flutter 支持的最新版本的 SDK 进行编译:compileSdkVersion flutter.compileSdkVersion.

targetSdkVersion :运行时的兼容模式

您还可以使用 的常量,targetSdkVersion但如果您尚未在最新的 Android 操作系统上测试您的应用程序,则可以定义一个较小的数字。

minimumSdkVersion :运行您的应用程序的最低设备级别

minimumSdkVersion值永远不应低于该值flutter.minimumSdkVersion,但如果您想要更具限制性(或者如果您使用需要提高标准的依赖项),则该值可以更高。

为了能够在 Android Pie (API 28) 上使用您的应用程序,您的值minimumSdkVersion应该大于或等于 28。

简化示例/android/app/build.gradle

android {
    compileSdkVersion flutter.compileSdkVersion

    defaultConfig {
        applicationId "your.bundle.id"
        minSdkVersion 21
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }
}
Run Code Online (Sandbox Code Playgroud)

Flutter 的最小值和最大值

Flutter常量在此文件中声明:https://github.com/flutter/flutter/blob/55868ed2a930ce8aa1c046ec9059ca077f807a94/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy#L44

提炼 :

android {
    compileSdkVersion flutter.compileSdkVersion

    defaultConfig {
        applicationId "your.bundle.id"
        minSdkVersion 21
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,它们可能会随着 Flutter 的每次修订而改变


Cop*_*oad 15

Flutter 需要minSdkVersion16,您可以将其设置targetSdkVersioncompliedSdkVersion最新的 API 级别,目前为 30。

您可以在文件中编辑这些属性/android/app/build.gradle

minSdkVersion 16
compiledSdkVersion 30
targetSdkVersion 30
Run Code Online (Sandbox Code Playgroud)

到 2021 年 8 月,新应用必须至少面向 Android 11(API 级别 30)。到 2021 年 11 月,所有正在更新的应用都必须至少面向 Android 11(API 级别 30)。在此之前,新应用和应用更新必须至少面向 Android 10(API 级别 29)。


Vin*_*nto 9

Android 9 的 API 级别为 28。完整列表请参见此处