Where is the value of "flutter.minSdkVersion" in Flutter project initialized?

6.5k Views Asked by At

I have created a new Flutter project, and this is how the minSdkVersion looks like in the app/build.gradle file:

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.projectname"
    minSdkVersion flutter.minSdkVersion
    targetSdkVersion flutter.targetSdkVersion
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}

Where is the value of flutter.minSdkVersion set?

Note that previously, that config value looked like the following:

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.projectname"
    minSdkVersion 19 //*** This is the part that needs to be changed, previously was 16
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

Also, this is the content of the android/local.properties file:

sdk.dir=/Users/usernaem/Library/Android/sdk
flutter.sdk=/Users/username/flutter
flutter.buildMode=release
flutter.versionName=1.0.0
flutter.versionCode=1

As you can see, the value of flutter.minSdkVersion is not set there, but the project can be compiled and built successfully.

Where are the flutter.minSdkVersion and flutter.targetSdkVersion variables initialized?

P.S. related issue: https://github.com/flutter/flutter/issues/95533

5

There are 5 best solutions below

2
Jay Goti On

Go to this file in your flutter extracted folder:

flutter/packages/flutter_tools/gradle/flutter.gradle

There you can find all static variables.

3
HFranco On

Put in your android/local.propertie file the variable:

Example:

flutter.minSdkVersion=21

And change in android/app/build.gradle

localProperties.getProperties('flutter.minSdkVersion') // flutter.minSdkVersion 
1
Rahul Biswas On

Just replace flutter.minSdkVersion with your required value such as 19 like old style

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.projectname"
    minSdkVersion 19
    targetSdkVersion flutter.targetSdkVersion
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}
0
Shahoriar Nahid On

Follow the path /android/app/build.gradle

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.sample.com"
    // You can update the following values to match your application needs.
    // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
    minSdkVersion 23
    targetSdkVersion 33
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    multiDexEnabled true

}
0
Badjio On

To complement Jay Goti's answer. On a newer Flutter project (3.13.9), the file at flutter/packages/flutter_tools/gradle/flutter.gradle will only have the following two lines:

def pathToThisDirectory = buildscript.sourceFile.parentFile
apply from: "$pathToThisDirectory/src/main/groovy/flutter.groovy"

So you have to refer to the mentioned file instead, at: flutter/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy

There you'll find all the info:

...

/** Sets the compileSdkVersion used by default in Flutter app projects. */
static int compileSdkVersion = 33

/** Sets the minSdkVersion used by default in Flutter app projects. */
static int minSdkVersion = 19

/** Sets the targetSdkVersion used by default in Flutter app projects. */
static int targetSdkVersion = 33

...