プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

Flutter の Android 用設定の targetSdkVersion とかの設定場所について

Flutter でアプリを作成すると android/app/build.gradle ファイルとかに、 targetSdkVersion とかが書かれると思います。

いままでは、これって数字がハードコードされていたと思ってたけど、ふと最近作ったプロジェクトを見直したら、

        minSdkVersion flutter.minSdkVersion
        targetSdkVersion flutter.targetSdkVersion

のように設定されていました。これ、元の値はどこにあるんだろうか?

Flutter SDK 3.13 以降の設定元(2024/7/1 追加)

Flutter SDK 3.13 からは < SDK install folder > /flutter/packages/flutter_tools/gradle/src/main/groovy にある flutter.groovy ファイルに変更になったそうです。

Flutter : How to change Android minSdkVersion in Flutter Project? - Stack Overflow

(略)
class FlutterExtension {

    /** Sets the compileSdkVersion used by default in Flutter app projects. */
    public final int compileSdkVersion = 34

    /** Sets the minSdkVersion used by default in Flutter app projects. */
    public  final int minSdkVersion = 21

    /**
     * Sets the targetSdkVersion used by default in Flutter app projects.
     * targetSdkVersion should always be the latest available stable version.
     *
     * See https://developer.android.com/guide/topics/manifest/uses-sdk-element.
     */
    public final int targetSdkVersion = 34
(略)

Flutter SDK 2.8 以降の設定元

これは、 Flutter SDK の < SDK install folder > /flutter/packages/flutter_tools/gradle にある flutter.gradle ファイルに設定されているそうです。

(前略)
/** For apps only. Provides the flutter extension used in app/build.gradle. */
class FlutterExtension {
    /** 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 = 16

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

上記は Flutter SDK 3.7.12 のもの。

いつからなんだろうか?と思って調べてみると、下記の記事によると Flutter 2.8 からだそうです。

Flutter2.8以降におけるAndroidのビルドファイル(build.gradle)の各種SDKversion数値の確認方法 | みんプロ式 - 初心者専門Flutterでスマホアプリプログラミング講座

でもこの記事によると公式の説明がないそうです。そういうところが Google さんもなんだかなー・・・