Wiki_Flutter_Android_Management_Version - inoueshinichi/Wiki_Flutter GitHub Wiki

androidの適用バージョンの管理

参考

MinSdkVersion 16 エラー

  • uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library
  • FireBaseなどのライブラリを導入した場合に, FlutterデフォルトのAndroidのMinSdkVersionが古すぎてエラーが発生する

解決方法

  • android/app/build.grandleを編集する
  • 2つの方法が存在する.
  • 方法2.は, 他ライブラリ(e.g. preference_share etc.)での後方性互換で問題が発生するので方法1.を使う.
  • 具体的には, $ flutter build apkコマンドを実行すると後方互換のエラーが発生する.
1. minSdkVersionをハードコーディングで編集
// android/app/build.gradle

defaultConfig {
  // TODO: Specify your own unique Application ID (https://~)
  applicationId "com.example.~" // アプリケーションID
  
  // AndroidSDKの最低サポートバージョン (ここを編集)
  minSdkVersion 23 // flutter.minSdkVersion
  
  // AndroidSDKのターゲットバージョン
  targetSdkVersion flutter.target.SdkVersion
  
  // バージョンコード
  versionCode flutterVersionCode.toInteger()

  // バージョン名
  versionName flutterVersionName

  // Firebase用
  multiDexEnabled true 
}
2. local.properties経由で編集
  • local.propertiesファイルにk=v形式でConfig値を設定
  • android/app/build.gradleがlocal.propertiesファイルを読み込むので, 専用変数で, minSdkVersionを設定する
// local.properties

sdk.dir=/Users/inoueshinichi/Library/Android/sdk
flutter.sdk=/Users/inoueshinichi/Documents/flutter
flutter.buildMode=release
flutter.versionName=1.0.0
flutter.versionCode=1
flutter.minSdkVersion=23 // 追加
// android/app/build.grandle

defaultConfig {
  // TODO: Specify your own unique Application ID (https://~)
  applicationId "com.example.~" // アプリケーションID
  
  // AndroidSDKの最低サポートバージョン (ここを編集)
  minSdkVersion localProperties.getProperty('flutter.minSdkVersion') // flutter.minSdkVersion
  
  // AndroidSDKのターゲットバージョン
  targetSdkVersion flutter.target.SdkVersion
  
  // バージョンコード
  versionCode flutterVersionCode.toInteger()

  // バージョン名
  versionName flutterVersionName

  // Firebase用
  multiDexEnabled true 
}