アプリ開発

FlutterでminSDK35に対応させる方法【2025年Google Play Store必須対応】

記事内に商品プロモーションを含む場合があります

2025年8月31日から、Google Play Storeでは新しいアプリとアップデートにAndroid 15(API レベル35)以上への対応が必要になりました。

これには、targetSDKだけでなく、minSDK35への対応も含まれます。

この記事では、FlutterアプリをminSDK35に対応させる具体的な手順を解説します。

実際のコード変更例も含めて、スムーズに移行できるように説明します。

Google Play Storeの新要件

まず、Googleが設定した新しい要件を確認しましょう。

2025年8月31日以降の要件

  • 新しいアプリとアップデート:Android 15(API レベル35)以上が必須
  • 既存アプリ:Android 14(API レベル34)以上をターゲットにする必要がある
  • minSDK35への対応も推奨される
  • 対象外:Wear OS、Android Auto、Android TVアプリは引き続きAndroid 14(API レベル34)以上

延長申請は2025年11月1日まで可能ですが、早めの対応をおすすめします。

対応手順

1. Flutter SDKの更新

まず、Flutter SDKを最新バージョンにアップデートします。

flutter upgrade
flutter doctor -v

Flutter 3.24以降であれば、最新のAndroid APIレベルに対応しています。

2. build.gradleファイルの編集

プロジェクトのandroid/app/build.gradleファイルを開き、以下の設定を変更します。

android {
    compileSdk 35
    
    defaultConfig {
        applicationId "com.example.yourapp"
        minSdk 35  // minSDK35に設定
        targetSdk 35  // targetSDK35に設定
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }
}

重要なポイント

  • compileSdk:アプリのコンパイルに使用するSDKバージョン
  • targetSdk:Google Play Storeの要件で35に設定が必須
  • minSdk:アプリがインストール可能な最低SDKバージョン(35に設定)

3. プロジェクトルートレベルのbuild.gradleの更新

プロジェクトルートのandroid/build.gradleファイルも更新が必要です。

buildscript {
    ext.kotlin_version = '1.9.24'  // Kotlinバージョンを最新に
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.4.2'  // Gradle Pluginを最新に
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

Android Studioを開いて、必要なSDKをインストールします。

  1. ToolsSDK Managerを開く
  2. SDK PlatformsタブでAPI レベル35を選択してインストール
  3. SDK Toolsタブで最新のビルドツールを選択してインストール

4. Gradle Wrapper の更新

android/gradle/wrapper/gradle-wrapper.propertiesファイルでGradleのバージョンを更新します。

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip

5. Android SDK Manager の更新

pubspec.yamlファイルで使用している依存関係を最新版に更新します。

flutter pub upgrade

古いプラグインがAPI レベル35に対応していない場合があるので、各プラグインのドキュメントを確認してください。

6. 依存関係の更新

設定変更後は、キャッシュをクリアして再ビルドします。

flutter clean
flutter pub get
flutter build apk --release

7. プロジェクトのクリーンビルド

Android 15対応デバイスまたはエミュレーターでテストを実行します。

flutter test
flutter run --release

特に以下の点を重点的にテストしてください

  • 権限管理の動作
  • UIの表示(エッジツーエッジ対応)
  • プラグインの動作確認

8. 動作確認とテスト

実際のコード変更例

以下は実際のプロジェクトでの変更例です:

frontend/android/build.gradle の変更例

// 変更前
buildscript {
    ext.kotlin_version = '1.8.22'
    dependencies {
        classpath 'com.android.tools.build:gradle:8.0.0'
    }
}

// 変更後
buildscript {
    ext.kotlin_version = '1.9.24'
    dependencies {
        classpath 'com.android.tools.build:gradle:8.4.2'
    }
}

gradle-wrapper.properties の変更例

# 変更前
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip

# 変更後
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip

よくある問題と対処法

エラー:「uses-sdk:minSdkVersion cannot be smaller than…」

このエラーは、依存関係のプラグインがminSDK35よりも高いSDKを要求している場合に発生します。

対処法

  1. 使用しているプラグインを最新版に更新する
  2. minSDK35に対応していないプラグインは代替手段を検討
  3. プラグインのドキュメントでminSDK要件を確認する

エラー:「Namespace not specified」

Android Gradle Plugin 8.0以降では、namespaceの明示的な指定が必要です。

対処法 android/app/build.gradleにnamespaceを追加します。

android {
    namespace "com.example.yourapp"
    compileSdk 35
    // 以下省略
}

エラー:「Edge-to-edge may not display for all users」

Android 15のエッジツーエッジ表示に関する警告です。

targetSDK35以降のデバイスでは上部ステータスバーと、下部ナビゲーションバーまでアプリのレイアウト領域となります。

対処法 android/app/src/main/res/values-v35/styles.xmlを作成し、以下を追加します。

<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
    <item name="android:windowBackground">?android:colorBackground</item>
    <item name="android:defaultFocusHighlightEnabled">false</item>
    <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
</style>

注意:この対応は将来的に非推奨になる可能性があります。

ビルドが通らない場合

以下のコマンドで環境をリセットしてから再試行します。

flutter clean
flutter pub cache repair
flutter pub get
flutter build apk

Gradleの同期エラー

Gradle Wrapper やプラグインのバージョン不整合でエラーが発生する場合

cd android
./gradlew clean
./gradlew build

プロジェクト固有とグローバル設定

プロジェクト固有の設定

特定のプロジェクトだけ設定を変更したい場合は、android/app/build.gradleを直接編集します。

グローバル設定

すべてのFlutterプロジェクトでminSDK35を使いたい場合は、Flutter SDKのflutter.gradleファイルを編集できますが、推奨されません。

新しいプロジェクトを作成する際に個別に設定することをおすすめします。

リリース前のチェックリスト

  • minSdktargetSdkが両方とも35に設定されている
  • Kotlinバージョンが1.9.24以降に更新されている
  • Gradle Plugin が8.4.2以降に更新されている
  • Gradle Wrapperが8.6以降に更新されている
  • 最新のFlutter SDKを使用している
  • 依存関係がすべて最新版でminSDK35に対応している
  • Android 15エミュレーターでテスト済み
  • エッジツーエッジ表示が正常
  • 権限要求が正常に動作する
  • APKアナライザーで設定確認済み
  • namespaceが正しく設定されている

まとめ

Google Play Storeの新要件に対応するには、build.gradleファイルのminSdktargetSdkを両方とも35に変更することが重要です。

また、Gradle関連のファイル(Kotlin バージョン、Gradle Plugin、Gradle Wrapper)も最新版に更新する必要があります。

重要なポイント

  • minSDK35に設定することで、Android 15未満のデバイスではアプリをインストールできなくなります
  • 必要に応じてエッジツーエッジ表示の対応も実装してください
  • namespace の明示的な指定が必要です

早めの対応で、ユーザーに安定したアプリを提供し続けることができます。

何か問題が発生した場合は、公式ドキュメントや各プラグインのGitHubページで最新情報を確認してください。