flutter.minSdkVersionとlintでビルドエラーが出た時の対処法

Flutter

こんにちは。趣味グラマのNobu(@nm_aru)です。

久しぶりにAndroidエミュレーターで動作確認をしようとしたら、2つのエラーにぶつかったので、備忘録として残しておこうと思います。

uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library〜

利用しているライブラリが求めているAPIレベルを満たしていない場合に発生するエラーになります。

エラーメッセージが丁寧過ぎて、修正方法もググる必要も無く丸分かりです。

早速該当ファイルを開いてみると、以下のようになっています。

minSdkVersionのところに「flutter.minSdkVersion」という文字があり、どこかで定義されている値のように見えますが、プロジェクト全体をgrepしても見つかりません。

build.gradleと同階層に「android/app/local.properties」というファイルがあり、どうやらこの中で定義すれば良さそうに見えますが、ここに定義してもbuild.gradle側では読み込んでくれません。

既にissue及びプルリクは上がっていましたが、どうやらlocal.propertiesを使う方法はAndroidの標準的なやり方ではなく、これをマージすると後方互換性を破壊するようで諦めたようです。

代わりにbuild.gradleに分かりやすいコメントをデフォルトで追加する方向になったのかな?

[Android] build.gradle defaultConfig with local.properties not working properly. · Issue #95533 · flutter/flutter
Hello, After coming back to an old flutter project and upgrading to 2.8 I found that there is a new configuration requir...

ただ、local.propertiesを使う方法はあるので、一応そのやり方を載せておきます。

build.gradle側でlocal.propertiesから値を取得するようにするだけです。

Execution failed for task ‘:app:lintVitalProductionRelease’.

次はこんなエラーが出たのですが、凄い事に修正方法の中にissueへのリンクまで記載されています。

まとめ

Flutterの開発をしている時、自分が普段使っている端末がiPhoneという事もあり、基本的にはiPhoneシミュレーターで動作確認をしているのですが、Androidでたまに確認しようとすると、ビルド周りでエラーになったりします。

ただ、Flutterはエラーメッセージがとても丁寧なので、こういう時は非常に助かります。

コメント

タイトルとURLをコピーしました