ビルドエラー解消(minSdkVersion)

2023年8月5日

開発環境
OS:Windows 11
SDK:VS Code + flutter 3.7.5

概要

パッケージ、webview_flutterを導入したところ、Androidアプリをビルドするときにエラーが出てしまいました。

今回は、ビルドエラーを解消します。

ビルドエラー

パッケージ、webview_flutterを導入し、Androidでデバッグしようとビルドした結果、

出力されたエラーがこちら。

デバッグコンソールに出力された内容を確認してみると、

minSdkVersionが16だと利用できない、とのこと。

さらに読み進めるとエラー解消方法が出力されていました。

┌─ Flutter Fix ─────────────────────────────────────────────────────────────────────────────────┐
│ The plugin webview_flutter_android requires a higher Android SDK version.                     │
│ Fix this issue by adding the following to the file                                            │
│ D:\work\vscode\sample2-2\android\app\build.gradle:                                            │
│ android {                                                                                     │
│   defaultConfig {                                                                             │
│     minSdkVersion 19                                                                          │
│   }                                                                                           │
│ } 

android/app/build.gradleのminSdkVersionの値を19にするらしい。

build.gradle

デバッグコンソールに出力されてエラー解消方法に従い、

build.gradleを確認してみると

minSdkVersionには、flutter.minSdkVersionが設定されていました。

flutter.minSdkVersionを追ってみたところ、

$flutterRoot/packages/flutter_tools/gradle/flutter.gradle内で定義を確認することができました。

(私の環境では、flutterRootはD:\work\apps\flutterでした。)

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

  ・・・

    /** Allows to override the target file. Otherwise, the target is lib/main.dart. */
    String target
}

flutter.minSdkVersionの定義値は16でした。

改修方針

flutter.gradleのminSdkVersionの定義値を16から19に変更したいところですが、

flutter.gradleは、全てのアプリが参照する共有ファイルです。

他のアプリへの影響を考慮すると変更できません。

と、いうことでアプリ内のbuild.gradleのminSdkVersionを変更します。

minSdkVersionを固定値「19」に置き換えました。

(結局のところ、デバッグコンソールの指示通りです。

ビルド結果

build.gradleの修正後、デバッグ実行した結果、正常に起動しました。

エラー要因

そもそも今回、なぜビルドエラーがでたのか?

導入したパッケージ、webview_flutterについてパッケージサイト、pub.devを確認したところ、AndroidのSupport SDKは、19以上と記載されていました。。。

今回は以上です。