Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 500
B Faley Avatar asked Sep 01 '25 21:09

B Faley


2 Answers

Go to this file in your flutter extracted folder:

flutter/packages/flutter_tools/gradle/flutter.gradle

There you can find all static variables.

repository source for the value for readers without a flutter install: https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/android/gradle_utils.dart#L42

like image 186
Jay Goti Avatar answered Sep 03 '25 10:09

Jay Goti


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

...
like image 26
Badjio Avatar answered Sep 03 '25 10:09

Badjio