Flutter: minSdkVersion 16 cannot be smaller than version 19 declared in library [:firebase_analytics] のエラー

※当サイトは、アフィリエイト広告を利用しています

結論:「build.gradle」バージョン数値参照部分をベタ書きで19に修正

2022/5/4 Flutter エラー・バグ日記

 

最新のFirebase関連のパッケージを導入してビルドしたところ、表題のエラーが発生。

 

本記事はライトな日記思考で書いているので、詳細説明はしておらず、基本、テキストのみで画像とかは載せておりません。。m(_ _)m

解説記事ではないため、解決していない内容や、その時々の間違った解釈を述べてしまっている可能性が大いにありますので、何卒、ご了承ください。

 

エラー文の内容は以下のとおり。

 

/Users/・・・・/android/app/src/debug/AndroidManifest.xml Error: uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:firebase_analytics] /Users/・・・・/build/firebase_analytics/intermediates/library_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 16 Suggestion: use a compatible library with a minSdk of at most 16, or increase this project's minSdk version to at least 19, or use tools:overrideLibrary="io.flutter.plugins.firebase.analytics" to force usage (may lead to runtime failures)
FAILURE: Build failed with an exception.
・・・(略)・・・

┌─ Flutter Fix
The plugin firebase_analytics requires a higher Android SDK version. 
Fix this issue by adding the following to the file 
/Users/・・・・/android/app/build.gradle:                
android {   
   defaultConfig {     
     minSdkVersion 19   
   }     
}     
           
Note that your app won't be available to users running Android SDKs below 19. 
Alternatively, try to find a version of this plugin that supports these lower versions of the
Android SDK.

 

「app/build.gradle」の「minSdkVersion」が16だと古すぎるので、19に修正が必要とのこと。

 

親切に修正方法までエラーメッセージに表示してくれている。

 

ただ、Flutter2.8以降は、「app/build.gradle」の「SdkVersion」は、数値ベタ書きではなく、「flutter.minSdkVersion」のようにファイル参照方式に変更されており、修正方法に検討が必要だった。

 

こちらの情報を参考に、Finderから

 

/Users/ユーザー名/flutter/packages/flutter_tools/gradle/flutter.gradle
※Macの場合です

 

のファイルを見てみると、確かに以下のようにバージョン数値が記載されていた。

 

/** 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 = 31
/** 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 = 31

 

ただ、ファイル内のデータ量が多く、検索しないと見つけられなかった。。

 

また、これだけ深い位置にあるファイルを、今後もメンテしていくのはちょっと不便だな、、、と思ったので、以下のように、「app/build.gradle」のバージョン数値参照部分をコメントアウトし、数値をベタ書きで修正してみた。

 

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "・・・・" 

//        minSdkVersion flutter.minSdkVersion     // このバージョン数値参照部分をコメントアウト
        minSdkVersion 19  // 修正後のバージョン数値を直接ベタ書き

        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

 

これで問題なくエラーは解消された。

 

この方法であれば、後でどう修正したかもわかりやすく、追加修正も楽だと感じた。

 

ちなみに、ネット上を検索すると、こちらこちらなど、同じエラーに対して、バージョンを21や23に修正している例が多かった。

 

こちらのAPIレベルの表を見ると、19というのはAndroid 4.4に相当するらしく、さすがに古すぎるので、確かにもっと上の数値にしたほうが良いのかもしれない(他のライブラリでは19より上を要求される可能性もあるため)。

 

 

リリースしたアプリ(全てFlutterで開発)

 

個人アプリ開発で役立ったもの

おすすめの学習教材

超初心者向けでオススメな元Udemyの講座/

 

 \キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/

 

\Gitの基礎について無料で学べる/

 

おすすめの学習書籍

実用的image_pickerに関してかなり助けられた/

 

Dartの基礎文法を素早くインプットできる/


Dart入門 - Dartの要点をつかむためのクイックツアー

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