Flutter在Android上的编译SDK版本和目标SDK版本是什么?

23

我想知道如果我想让我的应用程序支持新的Android手机,其API级别为9.0(Pie),那么在build.gradle中,compileSdkVersiontargetSdkVersion应该设置为什么值。

有人了解吗?

3个回答

38

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
    }
}

Flutter的最小值和最大值

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

提取:

    static int compileSdkVersion = 33
    static int minSdkVersion = 19
    static int targetSdkVersion = 33

当然,它们可以随着Flutter的每个版本进行更改。

为什么Flutter的常量如此过时?在撰写本文时,Flutter的Gradle版本为4,而当前的Gradle版本是8!目标Android API为31,而Google要求开发者将其目标设置为33。我建议不要使用Flutter的默认设置,而是将其更改为更近期的版本。 - undefined

15

Flutter需要minSdkVersion 16,并且您可以将targetSdkVersioncompliedSdkVersion设置为当前最新的API级别30。

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

minSdkVersion 16
compiledSdkVersion 30
targetSdkVersion 30
到2021年8月,新应用程序必须以至少Android 11 (API级别30)为目标。到2021年11月,正在更新的所有应用程序必须以至少Android 11 (API级别30)为目标。在此之前,新应用程序和应用程序更新必须以至少Android 10 (API级别29)为目标。

9

Android 9的API级别为28。完整列表在此


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接